Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jsxc/jsxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsualko <klaus@jsxc.org>2015-05-23 17:04:59 +0300
committersualko <klaus@jsxc.org>2015-05-23 17:05:53 +0300
commit0c5f405503e8163c67ebdf5e4c19ab9324c9be6c (patch)
treeb5f572bdec3b71a20bc20c647abc84cfc093b76e
parent499804d53b973b5a5d7dd34d04e17e8a64612e51 (diff)
build v2.0.1v2.0.1
-rw-r--r--CHANGELOG.md13
-rw-r--r--build/css/jsxc.css36
-rw-r--r--build/jsxc.js215
-rw-r--r--build/jsxc.min.js14
-rw-r--r--build/jsxc.min.js.map2
-rw-r--r--build/lib/jsxc.dep.js179
-rw-r--r--build/lib/jsxc.dep.min.js14
-rw-r--r--build/lib/jsxc.dep.min.js.map2
-rw-r--r--build/lib/otr/build/dep/bigint.js6
-rw-r--r--build/lib/otr/build/otr.js4
-rw-r--r--build/lib/strophe.caps.js2
-rw-r--r--build/lib/strophe.jingle/strophe.jingle.adapter.js58
-rw-r--r--build/lib/strophe.jingle/strophe.jingle.js16
-rw-r--r--build/lib/strophe.jingle/strophe.jingle.sdp.js81
-rw-r--r--build/lib/strophe.jingle/strophe.jingle.session.js11
-rw-r--r--doc/global.html4
-rw-r--r--doc/index.html2
-rw-r--r--doc/jsxc.gui.dialog.html10
-rw-r--r--doc/jsxc.gui.html40
-rw-r--r--doc/jsxc.gui.queryActions.html2
-rw-r--r--doc/jsxc.gui.roster.html82
-rw-r--r--doc/jsxc.gui.template.html4
-rw-r--r--doc/jsxc.gui.window.html38
-rw-r--r--doc/jsxc.html46
-rw-r--r--doc/jsxc.lib.gui.js.html72
-rw-r--r--doc/jsxc.lib.js.html26
-rw-r--r--doc/jsxc.lib.muc.js.html2
-rw-r--r--doc/jsxc.lib.notice.js.html2
-rw-r--r--doc/jsxc.lib.notification.js.html2
-rw-r--r--doc/jsxc.lib.options.js.html10
-rw-r--r--doc/jsxc.lib.otr.js.html33
-rw-r--r--doc/jsxc.lib.storage.js.html2
-rw-r--r--doc/jsxc.lib.webrtc.js.html46
-rw-r--r--doc/jsxc.lib.xmpp.js.html34
-rw-r--r--doc/jsxc.muc.html2
-rw-r--r--doc/jsxc.notification.html2
-rw-r--r--doc/jsxc.options.html38
-rw-r--r--doc/jsxc.otr.html16
-rw-r--r--doc/jsxc.storage.html2
-rw-r--r--doc/jsxc.webrtc.html36
-rw-r--r--doc/jsxc.xmpp.carbons.html10
-rw-r--r--doc/jsxc.xmpp.html42
-rw-r--r--package.json2
43 files changed, 717 insertions, 543 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9b73e309..e8cd8a19 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+v2.0.1 / 2015-05-23
+===
+- improve login box
+- fix browsers without CSPRNG generator
+- fix ajax login after credential failure
+- fix some webrtc issues
+- fix login with different username after dirty logout
+- remove ie (<11) gradient
+- remove broken mitm detection
+- fix temporary template 404
+- fix login option
+- add connecting event
+
v2.0.0 / 2015-05-08
===
- add multi-user chat (XEP-0045)
diff --git a/build/css/jsxc.css b/build/css/jsxc.css
index 44a8942e..f1cb5c1c 100644
--- a/build/css/jsxc.css
+++ b/build/css/jsxc.css
@@ -863,8 +863,7 @@ ul.jsxc_vCard {
height: 15px;
z-index: 100;
background: -webkit-linear-gradient(top, #999999 0, rgba(0, 0, 0, 0) 100%);
- background: linear-gradient(to bottom, #999999 0, rgba(0, 0, 0, 0) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='$window_gradient', endColorstr='#00282323', GradientType=0); }
+ background: linear-gradient(to bottom, #999999 0, rgba(0, 0, 0, 0) 100%); }
.jsxc_window .jsxc_avatar {
margin-top: 1px; }
.jsxc_window .jsxc_textarea {
@@ -931,8 +930,7 @@ ul.jsxc_vCard {
height: 15px;
z-index: 100;
background: -webkit-linear-gradient(top, #999999 0, rgba(40, 35, 35, 0) 100%);
- background: linear-gradient(to bottom, #999999 0, rgba(40, 35, 35, 0) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='$window_gradient', endColorstr='#00282323', GradientType=0); }
+ background: linear-gradient(to bottom, #999999 0, rgba(40, 35, 35, 0) 100%); }
.jsxc_chatmessage {
margin: 3px;
@@ -1126,3 +1124,33 @@ img.jsxc_vCard {
max-height: 200px;
border: 5px solid #fff;
border-radius: 2px; }
+
+.jsxc_alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px; }
+ .jsxc_alert.jsxc_alert-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc; }
+
+.jsxc_btn {
+ width: auto;
+ min-width: 25px;
+ padding: 5px;
+ background-color: rgba(240, 240, 240, 0.9);
+ font-weight: bold;
+ color: #555;
+ border: 1px solid rgba(190, 190, 190, 0.9);
+ cursor: pointer; }
+ .jsxc_btn.jsxc_btn-primary {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4; }
+ .jsxc_btn[disabled], .jsxc_btn[disabled]:hover {
+ opacity: 0.65;
+ cursor: not-allowed;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4; }
diff --git a/build/jsxc.js b/build/jsxc.js
index ac845b40..bf13bc4f 100644
--- a/build/jsxc.js
+++ b/build/jsxc.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.0.0 - 2015-05-08
+ * jsxc v2.0.1 - 2015-05-23
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.0.0
+ * @version 2.0.1
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
- version: '2.0.0',
+ version: '2.0.1',
/** True if i'm the master */
master: false,
@@ -201,6 +201,12 @@ jsxc = {
$.extend(true, jsxc.options, options);
}
+ // Check localStorage
+ if (typeof (localStorage) === 'undefined') {
+ jsxc.warn("Browser doesn't support localStorage.");
+ return;
+ }
+
/**
* Getter method for options. Saved options will override default one.
*
@@ -248,12 +254,6 @@ jsxc = {
localStorageExpirationTime: 60 * 60 * 24 * 1000,
});
- // Check localStorage
- if (typeof (localStorage) === 'undefined') {
- jsxc.debug("Browser doesn't support localStorage.");
- return;
- }
-
if (jsxc.storage.getItem('debug') === true) {
jsxc.options.otr.debug = true;
}
@@ -283,6 +283,10 @@ jsxc = {
// Check if we have to establish a new connection
if (!jsxc.storage.getItem('rid') || !jsxc.storage.getItem('sid') || !jsxc.restore) {
+ // clean up rid and sid
+ jsxc.storage.removeItem('rid');
+ jsxc.storage.removeItem('sid');
+
// Looking for a login form
if (!jsxc.options.loginForm.form || !(jsxc.el_exists(jsxc.options.loginForm.form) && jsxc.el_exists(jsxc.options.loginForm.jid) && jsxc.el_exists(jsxc.options.loginForm.pass))) {
@@ -364,7 +368,9 @@ jsxc = {
return;
}
- jsxc.gui.showWaitAlert($.t('Logging_in'));
+ if (!jsxc.triggeredFromBox && (jsxc.options.loginForm.onConnecting === 'dialog' || typeof jsxc.options.loginForm.onConnecting === 'undefined')) {
+ jsxc.gui.showWaitAlert($.t('Logging_in'));
+ }
var settings = jsxc.options.loadSettings.call(this, username, password);
@@ -374,6 +380,9 @@ jsxc = {
return false;
}
+ // prevent to modify the original object
+ settings = $.extend(true, {}, settings);
+
if (typeof settings.xmpp.username === 'string') {
username = settings.xmpp.username;
}
@@ -602,6 +611,7 @@ jsxc = {
jsxc.gui.roster.add(value);
});
+ jsxc.gui.roster.loaded = true;
$(document).trigger('cloaded.roster.jsxc');
},
@@ -1148,27 +1158,44 @@ jsxc.gui = {
jsxc.gui.dialog.open(jsxc.gui.template.get('loginBox'));
- $('#jsxc_dialog').find('form').submit(function() {
+ var alert = $('#jsxc_dialog').find('.jsxc_alert');
+ alert.hide();
+
+ $('#jsxc_dialog').find('form').submit(function(ev) {
+
+ ev.preventDefault();
- $(this).find('input[type=submit]').prop('disabled', true);
+ $(this).find('button[data-jsxc-loading-text]').trigger('btnloading.jsxc');
jsxc.options.loginForm.form = $(this);
jsxc.options.loginForm.jid = $(this).find('#jsxc_username');
jsxc.options.loginForm.pass = $(this).find('#jsxc_password');
- var settings = jsxc.prepareLogin();
-
jsxc.triggeredFromBox = true;
jsxc.options.loginForm.triggered = false;
+ var settings = jsxc.prepareLogin();
+
if (settings === false) {
- jsxc.gui.showAuthFail();
+ onAuthFail();
} else {
+ $(document).on('authfail.jsxc', onAuthFail);
+
jsxc.xmpp.login();
}
-
- return false;
});
+
+ function onAuthFail() {
+ alert.show();
+ jsxc.gui.dialog.resize();
+
+ $('#jsxc_dialog').find('button').trigger('btnfinished.jsxc');
+
+ $('#jsxc_dialog').find('input').one('keypress', function() {
+ alert.hide();
+ jsxc.gui.dialog.resize();
+ });
+ }
},
/**
@@ -1994,6 +2021,9 @@ jsxc.gui.roster = {
/** True if roster is initialised */
ready: false,
+ /** True if all items are loaded */
+ loaded: false,
+
/**
* Init the roster skeleton
*
@@ -2397,6 +2427,32 @@ jsxc.gui.dialog = {
$('#cboxClose').hide();
}
+ $('#jsxc_dialog form').each(function() {
+ var form = $(this);
+
+ form.find('button[data-jsxc-loading-text]').each(function(){
+ var btn = $(this);
+
+ btn.on('btnloading.jsxc', function(){
+ if(!btn.prop('disabled')) {
+ btn.prop('disabled', true);
+
+ btn.data('jsxc_value', btn.text());
+
+ btn.text(btn.attr('data-jsxc-loading-text'));
+ }
+ });
+
+ btn.on('btnfinished.jsxc', function() {
+ if(btn.prop('disabled')) {
+ btn.prop('disabled', false);
+
+ btn.text(btn.data('jsxc_value'));
+ }
+ });
+ });
+ });
+
jsxc.gui.dialog.resize();
$(document).trigger('complete.dialog.jsxc');
@@ -3076,8 +3132,13 @@ jsxc.gui.template = {
var ret = jsxc.gui.template[name];
if (typeof (ret) === 'string') {
+ // prevent 404
+ ret = ret.replace(/\{\{root\}\}/g, ph.root);
+
+ // convert to string
ret = $('<div>').append($(ret).i18n()).html();
+ // replace placeholders
ret = ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g, function(s, key) {
return (typeof ph[key] === 'string') ? ph[key] : s;
});
@@ -3214,9 +3275,10 @@ jsxc.gui.template = {
<input type="text" name="username" id="jsxc_username" required="required" value="{{my_node}}"/></p>\
<p><label for="jsxc_password" data-i18n="Password"></label>\
<input type="password" name="password" required="required" id="jsxc_password" /></p>\
+ <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div>\
<div class="bottom_submit_section">\
- <input type="reset" class="button jsxc_close" name="clear" data-i18n="[value]Cancel"/>\
- <input type="submit" class="button creation" name="commit" data-i18n="[value]Connect"/>\
+ <button type="reset" class="jsxc_btn jsxc_close" name="clear" data-i18n="Cancel"/>\
+ <button type="submit" class="jsxc_btn jsxc_btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect"/>\
</div>\
</form>',
contactDialog: '<h3 data-i18n="Add_buddy"></h3>\
@@ -4871,13 +4933,19 @@ jsxc.options = {
},
/**
+ * Action after login was called: dialog [String] Show wait dialog, false [boolean] |
+ * quiet [String] Do nothing
+ */
+ onConnecting: 'dialog',
+
+ /**
* Action after connected: submit [String] Submit form, false [boolean] Do
* nothing, continue [String] Start chat
*/
onConnected: 'submit',
/**
- * Action after auth fail: submit [String] Submit form, false [boolean] Do
+ * Action after auth fail: submit [String] Submit form, false [boolean] | quiet [String] Do
* nothing, ask [String] Show auth fail dialog
*/
onAuthFail: 'submit'
@@ -5226,6 +5294,10 @@ jsxc.otr = {
* @returns {undefined}
*/
toggleTransfer: function(bid) {
+ if (typeof OTR !== 'function') {
+ return;
+ }
+
if (jsxc.storage.getUserItem('buddy', bid).msgstate === 0) {
jsxc.otr.goEncrypt(bid);
} else {
@@ -5241,7 +5313,9 @@ jsxc.otr = {
*/
goEncrypt: function(bid) {
if (jsxc.master) {
- jsxc.otr.objects[bid].sendQueryMsg();
+ if (jsxc.otr.objects.hasOwnProperty(bid)) {
+ jsxc.otr.objects[bid].sendQueryMsg();
+ }
} else {
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 1);
}
@@ -5256,10 +5330,12 @@ jsxc.otr = {
*/
goPlain: function(bid, cb) {
if (jsxc.master) {
- jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
- jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
+ if (jsxc.otr.objects.hasOwnProperty(bid)) {
+ jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
+ jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
- jsxc.otr.backup(bid);
+ jsxc.otr.backup(bid);
+ }
} else {
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 0);
}
@@ -5342,6 +5418,21 @@ jsxc.otr = {
return;
}
+ if (typeof OTR !== 'function') {
+ jsxc.warn('OTR support disabled');
+
+ OTR = {};
+ OTR.CONST = {
+ MSGSTATE_PLAINTEXT : 0,
+ MSGSTATE_ENCRYPTED : 1,
+ MSGSTATE_FINISHED : 2
+ };
+
+ jsxc._onMaster();
+
+ return;
+ }
+
if (jsxc.storage.getUserItem('key') === null) {
var msg = $.t('Creating_your_private_key_');
var worker = null;
@@ -6338,7 +6429,17 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
}
var win = jsxc.gui.window.get(bid);
- var jid = win.data('jid') || jsxc.storage.getUserItem('buddy', bid).jid;
+ var jid = win.data('jid');
+ var ls = jsxc.storage.getUserItem('buddy', bid);
+
+ if (typeof jid !== 'string') {
+ if (ls && typeof ls.jid === 'string') {
+ jid = ls.jid;
+ } else {
+ jsxc.debug('[webrtc] Could not update icon, because could not find jid for ' + bid);
+ return;
+ }
+ }
var el = win.find('.jsxc_video').add(jsxc.gui.roster.getItem(bid).find('.jsxc_video'));
@@ -6401,12 +6502,14 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
* @param status
* @private
*/
- onPresence: function(ev, jid) {
+ onPresence: function(ev, jid, status, presence) {
var self = jsxc.webrtc;
- jsxc.debug('webrtc.onpresence', jid);
+ if ($(presence).find('c[xmlns="' + Strophe.NS.CAPS + '"]').length === 0) {
+ jsxc.debug('webrtc.onpresence', jid);
- self.updateIcon(jsxc.jidToBid(jid));
+ self.updateIcon(jsxc.jidToBid(jid));
+ }
},
/**
@@ -6467,7 +6570,13 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
onCaps: function(event, jid) {
var self = jsxc.webrtc;
- self.updateIcon(jsxc.jidToBid(jid));
+ if (jsxc.gui.roster.loaded) {
+ self.updateIcon(jsxc.jidToBid(jid));
+ } else {
+ $(document).on('cloaded.roster.jsxc', function() {
+ self.updateIcon(jsxc.jidToBid(jid));
+ });
+ }
},
/**
@@ -6708,23 +6817,7 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
sess.local_fp = SDPUtil.parse_fingerprint(SDPUtil.find_line(localSDP, 'a=fingerprint:')).fingerprint;
sess.remote_fp = SDPUtil.parse_fingerprint(SDPUtil.find_line(remoteSDP, 'a=fingerprint:')).fingerprint;
- var ip_regex = "(\\d{1,3}\\.\\d{1,3}.\\d{1,3}\\.\\d{1,3}) \\d+ typ host";
-
- sess.remote_ip = remoteSDP.match(new RegExp(ip_regex))[1];
- sess.local_ip = localSDP.match(new RegExp(ip_regex))[1];
-
- var regex = new RegExp(ip_regex, 'g');
- var match;
- while ((match = regex.exec(remoteSDP)) !== null) {
- if (match[1] !== sess.remote_ip) {
- alert('!!! WARNING !!!\n\nPossible Man-in-the-middle attack detected!\n\nYou should close the connection.');
- return;
- }
- }
-
var text = '<p>';
- text += '<b>' + $.t('Local_IP') + ': </b>' + sess.local_ip + '<br />';
- text += '<b>' + $.t('Remote_IP') + ': </b>' + sess.remote_ip + '<br />';
text += '<b>' + $.t('Local_Fingerprint') + ': </b>' + sess.local_fp + '<br />';
text += '<b>' + $.t('Remote_Fingerprint') + ': </b>' + sess.remote_fp;
text += '</p>';
@@ -7071,7 +7164,7 @@ jsxc.xmpp = {
*/
login: function() {
- if (jsxc.xmpp.conn && jsxc.xmpp.conn.connected) {
+ if (jsxc.xmpp.conn && jsxc.xmpp.conn.authenticated) {
return;
}
@@ -7102,15 +7195,17 @@ jsxc.xmpp = {
var url = jsxc.options.get('xmpp').url;
- // Register eventlistener
- $(document).on('connected.jsxc', jsxc.xmpp.connected);
- $(document).on('attached.jsxc', jsxc.xmpp.attached);
- $(document).on('disconnected.jsxc', jsxc.xmpp.disconnected);
- $(document).on('ridChange', jsxc.xmpp.onRidChange);
- $(document).on('connfail.jsxc', jsxc.xmpp.onConnfail);
- $(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
+ if (!(jsxc.xmpp.conn && jsxc.xmpp.conn.connected)) {
+ // Register eventlistener
+ $(document).on('connected.jsxc', jsxc.xmpp.connected);
+ $(document).on('attached.jsxc', jsxc.xmpp.attached);
+ $(document).on('disconnected.jsxc', jsxc.xmpp.disconnected);
+ $(document).on('ridChange', jsxc.xmpp.onRidChange);
+ $(document).on('connfail.jsxc', jsxc.xmpp.onConnfail);
+ $(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
- Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
+ Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
+ }
// Create new connection (no login)
jsxc.xmpp.conn = new Strophe.Connection(url);
@@ -7138,6 +7233,9 @@ jsxc.xmpp = {
jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status] + ': ' + condition);
switch (status) {
+ case Strophe.Status.CONNECTING:
+ $(document).trigger('connecting.jsxc');
+ break;
case Strophe.Status.CONNECTED:
jsxc.bid = jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase());
$(document).trigger('connected.jsxc');
@@ -7470,6 +7568,7 @@ jsxc.xmpp = {
* @private
*/
onAuthFail: function() {
+
if (jsxc.options.loginForm.triggered) {
switch (jsxc.options.loginForm.onAuthFail || 'ask') {
case 'ask':
@@ -7478,12 +7577,11 @@ jsxc.xmpp = {
case 'submit':
jsxc.submitLoginForm();
break;
+ case 'quiet':
+ case false:
+ return;
}
}
-
- if (jsxc.triggeredFromBox) {
- jsxc.gui.showAuthFail();
- }
},
/**
@@ -7529,6 +7627,7 @@ jsxc.xmpp = {
jsxc.storage.setUserItem('buddylist', buddies);
+ jsxc.gui.roster.loaded = true;
jsxc.debug('Roster loaded');
$(document).trigger('cloaded.roster.jsxc');
},
diff --git a/build/jsxc.min.js b/build/jsxc.min.js
index 287ccbf5..d1f9f355 100644
--- a/build/jsxc.min.js
+++ b/build/jsxc.min.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.0.0 - 2015-05-08
+ * jsxc v2.0.1 - 2015-05-23
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,13 +7,13 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.0.0
+ * @version 2.0.1
* @license MIT
*/
/*! This file is concatenated for the browser. */
-var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"2.0.0",master:!1,role_allocation:!1,to:null,toBusy:null,toNotification:null,toNotificationDelay:500,keepalive:null,restore:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/((?:https?:\/\/|www\.|([\w\-]+\.[a-zA-Z]{2,3})(?=\b))(?:(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\)([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])?)|(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]))?)/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),date=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,time=hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+"."+month+"."+year+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){options&&$.extend(!0,jsxc.options,options),jsxc.options.get=function(key){var local=jsxc.storage.getUserItem("options")||{};return local[key]||jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;if(lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,$.i18n.init({lng:lang,fallbackLng:"en",resStore:I18next,useLocalStorage:!0,localStorageExpirationTime:864e5}),"undefined"==typeof localStorage)return void jsxc.debug("Browser doesn't support localStorage.");jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1);var lastActivity=jsxc.storage.getItem("lastActivity")||0;if((new Date).getTime()-lastActivity<jsxc.options.loginTimeout&&(jsxc.restore=!0),$(document).on("connectionReady.jsxc",function(){if(null!==jsxc.options.logoutElement&&jsxc.options.logoutElement.length>0){var logout=function(){return jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}}),jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.restore)jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),"undefined"!=typeof jsxc.storage.getItem("alive")&&jsxc.restore?jsxc.checkMaster():jsxc.onMaster();else{if(!jsxc.options.loginForm.form||!(jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)))return void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(){var settings=jsxc.prepareLogin();return settings===!1||"true"!==settings.xmpp.onlogin&&settings.xmpp.onlogin!==!0?!0:(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login(),!1)})}},prepareLogin:function(){var username=$(jsxc.options.loginForm.jid).val(),password=$(jsxc.options.loginForm.pass).val();if("function"!=typeof jsxc.options.loadSettings)return void jsxc.error("No loadSettings function given. Abort.");jsxc.gui.showWaitAlert($.t("Logging_in"));var settings=jsxc.options.loadSettings.call(this,username,password);if(settings===!1||null===settings||"undefined"==typeof settings)return jsxc.warn("No settings provided"),!1;"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;return jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",$.each(settings,function(key,val){jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,settings},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.storage.getUserItem("windowlist")||jsxc.storage.setUserItem("windowlist",[]),jsxc.startKeepAlive(),jsxc.options.get("otr").enable?jsxc.otr.createDSA():jsxc._onMaster()},_onMaster:function(){if(jsxc.role_allocation&&$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.role_allocation=!0,jsxc.restore&&!jsxc.restoreCompleted&&(jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")),jsxc.restore){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1}$(document).on("connectionReady.jsxc",function(){jsxc.gui.updateAvatar($("#jsxc_avatar"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}),jsxc.xmpp.login()},checkMaster:function(){jsxc.debug("check master"),jsxc.to=window.setTimeout(jsxc.onMaster,1e3),jsxc.storage.ink("alive")},startKeepAlive:function(){jsxc.keepalive=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(){jsxc.storage.ink("alive"),jsxc.role_allocation&&jsxc.storage.setItem("lastActivity",(new Date).getTime())},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepalive&&window.clearInterval(jsxc.keepalive),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.getBareJidFromJid(jid).toLowerCase()},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var window=jsxc.storage.getUserItem("window",bid);return window?(jsxc.gui.window.init(bid),window.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,window.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=jsxc.options.loginForm.form.off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.submit()},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];return"function"==typeof fn?fn.apply(null,fnParams):void 0},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash}},jsxc.gui={emotions:[["O:-) O:)","angel"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","smile"],[":-D :D","grin"],[":-( :(","sad"],[";-) ;)","wink"],[":-P :P","tonguesmile"],["=-O","surprised"],[":kiss: :-*","kiss"],["8-) :cool:","sunglassess"],[":'-( :'( :&amp;apos;-(","crysad"],[":-/","doubt"],[":-X :X","zip"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":devil:","devil"],[":kiss: :kissing:","kissing"],["@->-- :rose: @-&gt;--","rose"],[":music:","music"],[":love:","love"],[":zzz:","tired"]],queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)}},init:function(){$("#jsxc_windowList").length>0||($("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList"),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy")))},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),ue.add(spot).removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is")+" "+jsxc.CONST.STATUS[data.status]),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info="<b>"+Strophe.getBareJidFromJid(data.jid)+"</b>\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar)},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);null!==avatarSrc?setAvatar(avatarSrc):jsxc.xmpp.conn.vcard.get(function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},Strophe.getBareJidFromJid(jid),function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)})},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();width>scrollWidth||(right>0&&(right=0),width-scrollWidth-padding>right&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(){var self=$(this);self.disableSelection();var ul=self.find("ul"),slideUp=null;slideUp=function(){ul.slideUp({complete:function(){self.removeClass("jsxc_opened")}}),$("body").off("click",null,slideUp)},$(this).click(function(){return ul.is(":hidden")?($("body").click(),$("body").one("click",slideUp)):$("body").off("click",null,slideUp),ul.slideToggle(),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){$(document).on("complete.dialog.jsxc",function(){$("#jsxc_password").focus()}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox")),$("#jsxc_dialog").find("form").submit(function(){$(this).find("input[type=submit]").prop("disabled",!0),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password");var settings=jsxc.prepareLogin();return jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1,settings===!1?jsxc.gui.showAuthFail():jsxc.xmpp.login(),!1})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid)),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog select").change(function(){$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+$(this).prop("selectedIndex")+")").slideDown({complete:function(){jsxc.gui.dialog.resize()}})}),$("#jsxc_dialog > div:eq(1) a.creation").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close(),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) a.creation").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}),void $("#jsxc_dialog > div:eq(3) .creation").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:null}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||$(document).one("close.dialog.jsxc",function(){jsxc.gui.showContactDialog(from)}),jsxc.gui.dialog.close()})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(){var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .creation").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .creation").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .creation").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_cancel").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)navigator.hasOwnProperty(key)&&"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";return el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0?content:void 0},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),("false"===jsxc.options.get("xmpp").overwrite||jsxc.options.get("xmpp").overwrite===!1)&&$(".jsxc_fieldsetXmpp").hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var err=jsxc.options.saveSettinsPermanent.call(this,data);return"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[err]),setTimeout(function(){self.find('input[type="submit"]').effect("highlight",{color:err?"green":"red"},4e3)},200),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+"). "+$.t("Do_you_want_to_display_them");jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('.jsxc_presence[data-bid="'+bid+'"]').removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)},unreadMsg:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.roster.getItem(bid).add(win).addClass("jsxc_unreadMsg"),jsxc.storage.updateUserItem("window",bid,"unread",!0)},readMsg:function(bid){var win=jsxc.gui.window.get(bid);win.hasClass("jsxc_unreadMsg")&&(jsxc.gui.roster.getItem(bid).add(win).removeClass("jsxc_unreadMsg"),jsxc.storage.updateUserItem("window",bid,"unread",!1))},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *mailto:/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())}},jsxc.gui.roster={ready:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text($.t(hideOffline?"Show_offline":"Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open("http://www.jsxc.org/manual.html","onlineHelp")}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence > ul > li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))}),"hidden"===jsxc.storage.getUserItem("roster")&&($("#jsxc_roster").css("right","-200px"),$("#jsxc_windowList > ul").css("paddingRight","10px"));
-var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_chaticon").click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),bud.toggleClass("jsxc_expand"),jsxc.gui.updateAvatar(bud,data.jid,data.avatar),!1};bud.find(".jsxc_control").click(expandClick),bud.dblclick(expandClick),bud.find(".jsxc_vcardicon").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"}),$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1,status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;return $(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||status>thisStatus?($(this).before(li),insert=!0,!1):void 0}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_options, .jsxc_control"),input=$('<input type="text" name="name"/>');options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.show(),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.show(),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid);if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(d){var duration=d||500,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList"),roster_width=roster.innerWidth(),roster_right=parseFloat($("#jsxc_roster").css("right")),state=0>roster_right?"shown":"hidden";jsxc.storage.setUserItem("roster",state),roster.animate({right:-1*(roster_width+roster_right)+"px"},duration),wl.animate({right:10-roster_right+"px"},duration),$(document).trigger("toggle.roster.jsxc",[state,duration])},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_a")+"</p>"),link=$("<a>"+$.t("new_buddy")+"</a>");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={open:function(data,o){var opt=o||{},options={};return options={onComplete:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),options.closeButton===!1&&$("#cboxClose").hide(),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")},onClosed:function(){$(document).trigger("close.dialog.jsxc")},onCleanup:function(){$(document).trigger("cleanup.dialog.jsxc")},opacity:.5},opt.noClose&&(options.overlayClose=!1,options.escKey=!1,options.closeButton=!1,delete opt.noClose),$.extend(options,opt),options.html='<div id="jsxc_dialog">'+data+"</div>",$.colorbox(options),$("#jsxc_dialog")},close:function(){jsxc.debug("close dialog"),$.colorbox.close()},resize:function(options){options=$.extend({innerWidth:$("#jsxc_dialog").outerWidth(),innerHeight:$("#jsxc_dialog").outerHeight()},options||{}),$("#cboxLoadedContent").css("overflow","hidden"),$.colorbox.resize(options)}},jsxc.gui.window={init:function(bid){if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).hide().appendTo("#jsxc_windowList > ul").show("slow"),data=jsxc.storage.getUserItem("buddy",bid);if(win.data("jid",data.jid),jsxc.gui.toggleList.call(win.find(".jsxc_settings")),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_tools").click(function(){return!1}),win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13===ev.which&&(body=""),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){13===ev.which&&$(this).val()&&(jsxc.gui.window.postMessage(bid,"out",$(this).val()),$(this).val(""))}).focus(function(){jsxc.gui.readMsg(bid)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_fade").hide(),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height});var offset=win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",ui.size.height+offset+6+"px"),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])}}),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist");wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:!1})}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui.unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$('<li><div title="'+ins+'" class="jsxc_'+val[1]+'"/></li>');li.click(function(){win.find("input").val(win.find("input").val()+ins),win.find("input").focus()}),win.find(".jsxc_emoticons ul").append(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid);var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;0>left&&jsxc.gui.scrollWindowListBy(-1*left),0>right&&jsxc.gui.scrollWindowListBy(right)}return win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).hide("slow",function(){$(this).remove(),jsxc.gui.updateWindowListSB()})},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.find(".jsxc_fade").is(":hidden")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.window.get(bid).find(".jsxc_fade").slideDown(),win.removeClass("jsxc_min"),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)},_hide:function(bid){jsxc.gui.window.get(bid).addClass("jsxc_min").find(" .jsxc_fade").slideUp(),jsxc.gui.window.get(bid).trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var data=jsxc.storage.getUserItem("buddy",bid),html_msg=msg;msg=jsxc.removeHTML(msg),msg=jsxc.escapeHTML(msg),"out"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&forwarded!==!0&&(direction="sys",msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),"in"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(direction="sys",msg=$.t("unencrypted_message_received")+" "+msg),"out"===direction&&"from"===data.sub&&(direction="sys",msg=$.t("your_message_wasnt_send_because_you_have_no_valid_subscription")),encrypted=encrypted||data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;var post=jsxc.storage.saveMessage(bid,direction,msg,encrypted,forwarded,stamp,sender);"in"===direction&&$(document).trigger("postmessagein.jsxc",[bid,html_msg]),"out"===direction&&jsxc.master&&forwarded!==!0&&jsxc.xmpp.sendMessage(bid,html_msg,post.uid),jsxc.gui.window._postMessage(bid,post),"out"===direction&&"?"===msg&&jsxc.gui.window.postMessage(bid,"sys","42")},_postMessage:function(bid,post,restore){var win=jsxc.gui.window.get(bid),msg=post.msg,direction=post.direction,uid=post.uid;win.find(".jsxc_textinput").is(":not(:focus)")&&jsxc.restoreCompleted&&"in"===direction&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],function(match,p1){var i,esc="";for(i=0;i<p1.length;i++)esc+="&#"+p1.charCodeAt(i)+";";return'<div title="'+esc+'" class="jsxc_emoticon jsxc_'+val[1]+'"/>'})});var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(post.stamp)),post.received&&msgDiv.addClass("jsxc_received"),post.forwarded&&msgDiv.addClass("jsxc_forwarded"),post.encrypted&&msgDiv.addClass("jsxc_encrypted"),"sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div style="clear:both"/>'):"undefined"!=typeof post.stamp&&msgDiv.append(msgTsDiv),win.find(".jsxc_textarea").append(msgDiv),"object"==typeof post.sender&&null!==post.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof post.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(post.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(post.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(post.sender.jid),data.avatar),title=jsxc.jidToBid(post.sender.jid)}"string"==typeof post.sender.name&&(msgDiv.attr("data-name",post.sender.name),"string"!=typeof post.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,post.sender.name),""!==title&&(title="\n"+title),title=post.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+post.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title))}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid),win.find(".jsxc_textinput").is(":focus")||!jsxc.restoreCompleted||restore||jsxc.gui.unreadMsg(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){for(var chat=jsxc.storage.getUserItem("chat",bid);null!==chat&&chat.length>0;){var c=chat.pop();jsxc.gui.window._postMessage(bid,c,!0)}},clear:function(bid){jsxc.storage.setUserItem("chat",bid,[]),jsxc.gui.window.get(bid).find(".jsxc_textarea").empty()}},jsxc.gui.template={get:function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?data.name:bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=$("<div>").append($(ret).i18n()).html(),ret=ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g,function(s,key){return"string"==typeof ph[key]?ph[key]:s})):(jsxc.debug("Template not available: "+name),name)},authenticationDialog:'<h3>Verification</h3> <p data-i18n="Authenticating_a_buddy_helps_"></p> <div> <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy" style="margin:0px;"></p> <select size="1"> <option data-i18n="Select_method"></option> <option data-i18n="Manual"></option> <option data-i18n="Question"></option> <option data-i18n="Secret"></option> </select> </div> <div style="display:none"> <p data-i18n="To_verify_the_fingerprint_" class=".jsxc_explanation"></p> <p><strong data-i18n="Your_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{my_priv_fingerprint}}</span></p> <p><strong data-i18n="Buddy_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{bid_priv_fingerprint}}</span></p><br /> <p class="jsxc_right"><a href="#" data-i18n="Close" class="jsxc_close button"></a> <a href="#" data-i18n="Compared" class="button creation"></a></p> </div> <div style="display:none"> <p data-i18n="To_authenticate_using_a_question_" class=".jsxc_explanation"></p> <p><label for="jsxc_quest" data-i18n="Question"></label><input type="text" name="quest" id="jsxc_quest" /></p> <p><label for="jsxc_secret2" data-i18n="Secret"></label><input type="text" name="secret2" id="jsxc_secret2" /></p> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button creation" data-i18n="Ask"></a></p> </div> <div style="display:none"> <p class=".jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p> <p><label for="jsxc_secret" data-i18n="Secret"></label><input type="text" name="secret" id="jsxc_secret" /></p> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button creation" data-i18n="Compare"></a></p> </div>',fingerprintsDialog:'<div> <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p> <p><strong data-i18n="Your_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{my_priv_fingerprint}}</span></p> <p><strong data-i18n="Buddy_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{bid_priv_fingerprint}}</span></p><br /> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a></p> </div>',chatWindow:'<li class="jsxc_min jsxc_windowItem"> <div class="jsxc_window"> <div class="jsxc_bar"> <div class="jsxc_avatar">☺</div> <div class="jsxc_tools"> <div class="jsxc_settings"> <ul> <li class="jsxc_fingerprints jsxc_otr jsxc_disabled" data-i18n="Fingerprints"></li> <li class="jsxc_verification" data-i18n="Authentication"></li> <li class="jsxc_transfer jsxc_otr jsxc_disabled" data-i18n="start_private"></li> <li class="jsxc_clear" data-i18n="clear_history"></li> </ul> </div> <div class="jsxc_transfer jsxc_otr jsxc_disabled"/> <div class="jsxc_close">×</div> </div> <div class="jsxc_name"/> <div class="jsxc_cycle"/> </div> <div class="jsxc_fade"> <div class="jsxc_gradient"/> <div class="jsxc_textarea"/> <div class="jsxc_emoticons"><ul/></div> <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message"/> </div> </div> </li>',roster:'<div id="jsxc_roster"> <ul id="jsxc_buddylist"></ul> <div class="jsxc_bottom jsxc_presence" data-bid="own"> <div id="jsxc_avatar"> <div class="jsxc_avatar">☺</div> </div> <div id="jsxc_menu"> <span></span> <ul> <li class="jsxc_settings" data-i18n="Settings"></li> <li class="jsxc_muteNotification" data-i18n="Mute"></li> <li class="jsxc_addBuddy" data-i18n="Add_buddy"></li> <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li> <li class="jsxc_onlineHelp" data-i18n="Online_help"></li> <li class="jsxc_about" data-i18n="About"></li> </ul> </div> <div id="jsxc_notice"> <span></span> <ul></ul> </div> <div id="jsxc_presence"> <span data-i18n="Online"></span> <ul> <li data-pres="online" class="jsxc_online" data-i18n="Online"></li> <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li> <li data-pres="away" class="jsxc_away" data-i18n="Away"></li> <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li> <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li> <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li> </ul> </div> </div> <div id="jsxc_toggleRoster"></div> </div>',windowList:'<div id="jsxc_windowList"> <ul></ul> </div> <div id="jsxc_windowListSB"> <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div> <div class="jsxc_scrollRight jsxc_disabled">&gt;</div> </div>',rosterBuddy:'<li> <div class="jsxc_avatar">☺</div> <div class="jsxc_control"></div> <div class="jsxc_name"/> <div class="jsxc_options jsxc_right"> <div class="jsxc_rename" data-i18n="[title]rename_buddy">✎</div> <div class="jsxc_delete" data-i18n="[title]delete_buddy">✘</div> </div> <div class="jsxc_options jsxc_left"> <div class="jsxc_chaticon" data-i18n="[title]send_message"/> <div class="jsxc_vcardicon" data-i18n="[title]get_info">i</div> </div> </li>',loginBox:'<h3 data-i18n="Login"></h3> <form> <p><label for="jsxc_username" data-i18n="Username"></label> <input type="text" name="username" id="jsxc_username" required="required" value="{{my_node}}"/></p> <p><label for="jsxc_password" data-i18n="Password"></label> <input type="password" name="password" required="required" id="jsxc_password" /></p> <div class="bottom_submit_section"> <input type="reset" class="button jsxc_close" name="clear" data-i18n="[value]Cancel"/> <input type="submit" class="button creation" name="commit" data-i18n="[value]Connect"/> </div> </form>',contactDialog:'<h3 data-i18n="Add_buddy"></h3> <p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p> <form> <p><label for="jsxc_username" data-i18n="Username"></label> <input type="text" name="username" id="jsxc_username" list="jsxc_userlist" pattern="^[^\\x22&\'\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" /></p> <datalist id="jsxc_userlist"></datalist> <p><label for="jsxc_alias" data-i18n="Alias"></label> <input type="text" name="alias" id="jsxc_alias" /></p> <p class="jsxc_right"> <input class="button" type="submit" data-i18n="[value]Add" /> </p> <form>',approveDialog:'<h3 data-i18n="Subscription_request"></h3> <p><span data-i18n="You_have_a_request_from"></span><b class="jsxc_their_jid"></b>.</p> <p class="jsxc_right"><a href="#" class="button jsxc_deny" data-i18n="Deny"></a> <a href="#" class="button creation jsxc_approve" data-i18n="Approve"></a></p>',removeDialog:'<h3 data-i18n="Remove_buddy"></h3> <p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p> <p class="jsxc_right"><a href="#" class="button jsxc_cancel jsxc_close" data-i18n="Cancel"></a> <a href="#" class="button creation" data-i18n="Remove"></a></p>',waitAlert:'<h3>{{msg}}</h3> <p data-i18n="Please_wait"></p> <p class="jsxc_center"><img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /></p>',alert:'<h3 data-i18n="Alert"></h3> <p>{{msg}}</p> <p class="jsxc_right"><a href="#" data-i18n="Ok" class="button jsxc_close jsxc_cancel"></a></p>',authFailDialog:'<h3 data-i18n="Login_failed"></h3> <p data-i18n="Sorry_we_cant_authentikate_"></p> <p class="jsxc_right"> <a class="button jsxc_cancel" data-i18n="Continue_without_chat"></a> <a class="button creation" data-i18n="Retry"></a> </p>',confirmDialog:'<p>{{msg}}</p> <p class="jsxc_right"> <a class="button jsxc_cancel jsxc_close" data-i18n="Dismiss"></a> <a class="button creation" data-i18n="Confirm"></a> </p>',pleaseAccept:'<p data-i18n="Please_accept_"></p>',aboutDialog:"<h3>JavaScript XMPP Chat</h3> <p><b>Version: </b>"+jsxc.version+'<br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a></p> <p><i>Released under the MIT license</i></p> <p>Real-time chat app for {{app_name}} and more.<br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.</p> <p><b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>, <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a></p> <p class="jsxc_libraries"><b>Libraries: </b><a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/ESTOS/strophe.jingle">strophe.jingle</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT)</p> <p class="jsxc_right"><a class="button jsxc_debuglog" href="#">Show debug log</a></p>',vCard:'<h3><span data-i18n="Info_about"></span> <span>{{bid_name}}</span></h3> <ul class="jsxc_vCard"></ul> <p><img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...</p>',settings:'<h3 data-i18n="User_settings"></h3> <p></p> <form> <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset"> <legend data-i18n="Login_options"></legend> <label for="xmpp-url" data-i18n="BOSH_url"></label><input type="text" id="xmpp-url" readonly="readonly"/><br /> <label for="xmpp-username" data-i18n="Username"></label><input type="text" id="xmpp-username"/><br /> <label for="xmpp-domain" data-i18n="Domain"></label><input type="text" id="xmpp-domain"/><br /> <label for="xmpp-resource" data-i18n="Resource"></label><input type="text" id="xmpp-resource"/><br /> <label for="xmpp-onlogin" data-i18n="On_login"></label><input type="checkbox" id="xmpp-onlogin" /><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form> <p></p> <form> <fieldset class="jsxc_fieldsetPriority jsxc_fieldset"> <legend data-i18n="Priority"></legend> <label for="priority-online" data-i18n="Online"></label><input type="number" value="0" id="priority-online" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-chat" data-i18n="Chatty"></label><input type="number" value="0" id="priority-chat" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-away" data-i18n="Away"></label><input type="number" value="0" id="priority-away" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-xa" data-i18n="Extended_away"></label><input type="number" value="0" id="priority-xa" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-dnd" data-i18n="dnd"></label><input type="number" value="0" id="priority-dnd" min="-128" max="127" step="1" required="required"/><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form> <p></p> <form data-onsubmit="xmpp.carbons.refresh"> <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset"> <legend data-i18n="Carbon_copy"></legend> <label for="carbons-enable" data-i18n="Enable"></label><input type="checkbox" id="carbons-enable" /><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form>'},jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3> <p class=".jsxc_explanation" data-i18n="muc_explanation"></p> <p><label for="jsxc_server" data-i18n="Server"></label> <input type="text" name="server" id="jsxc_server" required="required" readonly="readonly" /></p> <p><label for="jsxc_room" data-i18n="Room"></label> <input type="text" name="room" id="jsxc_room" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" /></p> <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p> <datalist id="jsxc_roomlist"> <p><label for="jsxc_roomlist_select"></label><select id="jsxc_roomlist_select"><option></option><option>workaround</option></select></p> </datalist> <p><label for="jsxc_nickname" data-i18n="Nickname"></label> <input type="text" name="nickname" id="jsxc_nickname" /></p> <p><label for="jsxc_password" data-i18n="Password"></label> <input type="text" name="password" id="jsxc_password" /></p> <div class="jsxc_msg"></div> <p class="jsxc_right"> <span class="jsxc_warning"></span> <a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button jsxc_continue" data-i18n="Continue"> <a href="#" class="button jsxc_join" data-i18n="Join"></a> </p>',jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul").append(li)},showJoinChat:function(){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),dialog.find("#jsxc_server").val(jsxc.options.get("muc").server);
-var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),dialog.find(".jsxc_warning").text(msg)};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),self.conn.muc.listRooms(jsxc.options.get("muc").server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(){jsxc.warn("Could not load rooms"),dialog.find(".jsxc_inputinfo").hide()}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),password=$("#jsxc_password").val()||null;if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(room.match(/@(.*)$/)||(room+="@"+jsxc.options.get("muc").server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){return ev.preventDefault(),self.join(room,nickname,password,roomName,subject),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18n.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else dialog.find(".jsxc_warning").text($.t("You_already_joined_this_room"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").empty(),void(dialog.find(".jsxc_continue").is(":hidden")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},join:function(room,nickname,password,roomName,subject){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password)},leave:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){var self=jsxc.muc;jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage(room,"sys",$.t("This_room_will_be_closed"));var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata)},initWindow:function(event,win){var self=jsxc.muc,data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if(!jsxc.xmpp.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});if(!(self.conn.muc.roomNames.indexOf(data.jid)<0)){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_transfer").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)}),setTimeout(function(){var top=win.find(".jsxc_emoticons").position().top+win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",top+"px")},400);var destroy=$("<li>");if(destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append(destroy),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show()})}var leave=$("<li>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append(leave)}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),0===jsxc.gui.roster.getItem(room).length){jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),jsxc.storage.removeUserItem("chat",room),member={};var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room),jsxc.gui.window.open(room),jsxc.gui.dialog.close()}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage(room,"sys",$.t("This_room_has_been_closed")),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage(room,"sys",$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0}))):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage(room,"sys",$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0}))}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage(room,"sys",$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_enabled"))},201:function(room){var self=jsxc.muc;self.conn.muc.createInstantRoom(room)},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_banned")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0}))},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_kicked")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0}))},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_affiliation"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0}))},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_membersonly"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0}))},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_shutdown"))}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage(room,"in",reason,!1,!1,null,actor):jsxc.gui.window.postMessage(room,"sys",reason))},insertMember:function(room,nickname,memberdata){var self=jsxc.muc,win=jsxc.gui.window.get(room),jid=memberdata.jid,m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===jsxc.jidToBid(self.conn.jid)&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,width>scrollWidth||left>0?left=0:width-scrollWidth>left&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(jsxc.el_exists($("#"+id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.postMessage(room,"in",body,!1,!1,stamp,sender)}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage(room,"sys",$.t("changed_subject_to",{nickname:nickname,subject:subject.text()}))}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length?!0:($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_item-not-found")):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_forbidden")):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_not-acceptable")):jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send")),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;"groupchat"===data.type&&bud.find(".jsxc_delete").off("click").click(function(){return self.leave(room),!1})}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).one("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val.msg,val.description,val.fnName,val.fnParams,key)}},add:function(msg,description,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>");if(notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num),!id){var saved=jsxc.storage.getUserItem("notices")||{};saved[nid]={msg:msg,description:description,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)}},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices");delete s[nid],jsxc.storage.setUserItem("notices",s)},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){return val.fnName===fnName?(has=!0,!1):void 0}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from")+" "+data.name,msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return window.Notification?!0:!1},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add($.t("Notifications")+"?",$.t("Should_we_notify_you_"),"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),$(document).trigger(jsxc.notification.hasPermission()?"notificationready.jsxc":"notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!0,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,overwrite:!1,onlogin:!0},priority:{online:0,chat:0,away:0,xa:0,dnd:0},loginForm:{form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnected:"submit",onAuthFail:"submit"},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",loginTimeout:6e5,displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:function(){},saveSettinsPermanent:function(){},carbons:{enable:!1},getUsers:null},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage(bid,"in",d.msg,d.encrypted,d.forwarded,d.stamp):jsxc.gui.window.postMessage(bid,"sys",$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",d.encrypted,d.forwarded,d.stamp)},sendMessage:function(jid,msg,uid){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,uid)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage(bid,"sys",$.t("trying_to_start_private_conversation"));break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg=$.t(jsxc.otr.objects[bid].trust?"Verified":"Unverified")+" "+$.t("private_conversation_started");jsxc.gui.window.postMessage(bid,"sys",msg);break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage(bid,"sys",$.t("private_conversation_aborted"))):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage(bid,"sys",$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":if(jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_request_received")),$("#jsxc_dialog").length>0){jsxc.otr.objects[bid].sm.abort();break}jsxc.otr.onSmpQuestion(bid,data),jsxc.storage.setUserItem("smp_"+bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")):jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_failed")),jsxc.storage.removeUserItem("smp_"+bid),jsxc.gui.dialog.close();break;case"abort":jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_aborted"));break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded})}),jsxc.otr.objects[bid].on("io",function(msg,uid){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,uid)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage(bid,"sys","[OTR] "+$.t(err)),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".creation").text("Answer"),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("your_buddy_is_attempting_to_determine_")+" "+$.t("to_authenticate_to_your_buddy")+$.t("enter_the_answer_and_click_answer"))):$("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("your_buddy_is_attempting_to_determine_")+" "+$.t("to_authenticate_to_your_buddy")+$.t("enter_the_secret")),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp_"+bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid)},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv)if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/build/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(jsxc._onMaster(),worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),jsxc.otr.dsaFallback!==!1&&jsxc._onMaster()},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback?jsxc.gui.dialog.close():$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&"lastActivity"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value)),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&"lastActivity"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)
-},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"lastActivity"){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),void jsxc.storage.ink("alive");if(!(jsxc.master||"alive"!==key&&"alive_busy"!==key||jsxc.triggeredFromElement))return window.clearTimeout(jsxc.to),jsxc.to=window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60)),void(jsxc.role_allocation||jsxc.onSlave());if(key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^chat"+jsxc.storage.SEP)))for(var data,el,posts=JSON.parse(e.newValue);posts.length>0;)data=posts.pop(),el=$("#"+data.uid),0===el.length?(jsxc.master&&"out"===data.direction&&jsxc.xmpp.sendMessage(bid,data.msg,data.uid),jsxc.gui.window._postMessage(bid,data)):data.received&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid),void jsxc.gui.window.setText(bid,n.text)):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close(),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.otr.onSmpQuestion(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close(),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(!e.oldValue)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),(o.status!==n.status||o.sub!==n.sub)&&jsxc.gui.roster.reorder(bid)}if(jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"sid"===key)return void(e.newValue||jsxc.xmpp.logout());"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid))}}}},saveMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var chat=jsxc.storage.getUserItem("chat",bid)||[],uid=(new Date).getTime()+":msg";chat.length>jsxc.options.get("numberOfMsg")&&chat.pop();var post={direction:direction,msg:msg,uid:uid.replace(/:/,"-"),received:!1,encrypted:encrypted||!1,forwarded:forwarded||!1,stamp:stamp||(new Date).getTime(),sender:sender};return chat.unshift(post),jsxc.storage.setUserItem("chat",bid,chat),post},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3> <p><span data-i18n="Do_you_want_to_accept_the_call_from"></span> {{bid_name}}?</p> <p class="jsxc_right"> <a href="#" class="button jsxc_reject" data-i18n="Reject"></a> <a href="#" class="button creation jsxc_accept" data-i18n="Accept"></a> </p>',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>',jsxc.gui.template.videoWindow='<div class="jsxc_webrtc"> <div class="jsxc_chatarea"> <ul></ul> </div> <div class="jsxc_videoContainer"> <video class="jsxc_localvideo" autoplay></video> <video class="jsxc_remotevideo" autoplay></video> <div class="jsxc_status"></div> <div class="bubblingG"> <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span> </div> <div class="jsxc_noRemoteVideo"> <div> <div></div> <p data-i18n="No_video_signal"></p> <div></div> </div> </div> </div> <div class="jsxc_controlbar"> <button type="button" class="jsxc_hangUp" data-i18n="hang_up"></button> <input type="range" class="jsxc_volume" min="0.0" max="1.0" step="0.05" value="0.5" /> <div class="jsxc_buttongroup"> <button type="button" class="jsxc_snapshot" data-i18n="snapshot"></button><button type="button" class="jsxc_snapshots">&#9660;</button> </div> <!-- <button type="button" class="jsxc_mute_local" data-i18n="mute_my_audio"></button> <button type="button" class="jsxc_pause_local" data-i18n="pause_my_video"></button> --> <button type="button" class="jsxc_showchat" data-i18n="chat"></button> <button type="button" class="jsxc_fullscreen" data-i18n="fullscreen"></button> <button type="button" class="jsxc_info" data-i18n="Info"></button> </div> <div class="jsxc_multi"> <div class="jsxc_snapshotbar"> <p>No pictures yet!</p> </div>\n <!--<div class="jsxc_chatarea"> <ul></ul> </div>--> <div class="jsxc_infobar"></div> </div> </div>',jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],chatJids:{},init:function(){var self=jsxc.webrtc;return self.conn=jsxc.xmpp.conn,"firefox"===RTC.browser&&(self.conn.jingle.media_constraints.mandatory.MozDontOfferDataChannel=!0),self.conn.jingle?(self.conn.jingle.PRANSWER=!1,self.conn.jingle.AUTOACCEPT=!1,self.conn.jingle.ice_config=jsxc.storage.getUserItem("iceConfig"),self.conn.jingle.MULTIPARTY=!1,self.conn.jingle.pc_constraints=RTC.pc_constraints,$(document).on("message.jsxc",$.proxy(self.onMessage,self)),$(document).on("presence.jsxc",$.proxy(self.onPresence,self)),$(document).on("mediaready.jingle",$.proxy(self.onMediaReady,self)),$(document).on("mediafailure.jingle",$.proxy(self.onMediaFailure,self)),$(document).on("callincoming.jingle",$.proxy(self.onCallIncoming,self)),$(document).on("callterminated.jingle",$.proxy(self.onCallTerminated,self)),$(document).on("ringing.jingle",$.proxy(self.onCallRinging,self)),$(document).on("remotestreamadded.jingle",$.proxy(self.onRemoteStreamAdded,self)),$(document).on("remotestreamremoved.jingle",$.proxy(self.onRemoteStreamRemoved,self)),$(document).on("iceconnectionstatechange.jingle",$.proxy(self.onIceConnectionStateChanged,self)),$(document).on("nostuncandidates.jingle",$.proxy(self.noStunCandidates,self)),$(document).on("error.jingle",function(ev,sid,error){jsxc.error("[JINGLE]",error)}),self.conn.disco&&self.conn.disco.addFeature("urn:xmpp:jingle:apps:dtls:0"),self.conn.caps&&$(document).on("caps.strophe",$.proxy(self.onCaps,self)),void self.getTurnCrendentials()):void jsxc.error("No jingle plugin found!")},getTurnCrendentials:function(){if(!jsxc.options.turnCredentialsPath)return void jsxc.debug("No path for TURN credentials defined!");var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return ttl>0?void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500):void $.ajax(jsxc.options.turnCredentialsPath,{async:!0,success:function(data){var iceConfig={iceServers:[{url:"turn:"+data.url,credential:data.credential,username:data.username}]};jsxc.webrtc.conn.jingle.ice_config=iceConfig,jsxc.storage.setUserItem("iceConfig",iceConfig),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*data.ttl)},dataType:"json"})},getCapableRes:function(jid){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=jsxc.storage.getUserItem("res",bid)||[],available=[];return $.each(res,function(r){self.conn.caps.hasFeatureByJid(bid+"/"+r,self.reqVideoFeatures)&&available.push(r)}),available},onAddRosterItem:function(event,bid,data,el){var self=jsxc.webrtc;if(!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.onAddRosterItem(null,bid,data,el)});var videoIcon=$('<div class="jsxc_video jsxc_disabled" title="'+$.t("Start_video_call")+'"></div>');videoIcon.click(function(){return self.startCall(data.jid),!1}),el.find(".jsxc_options.jsxc_left").append(videoIcon),el.on("extra.jsxc",function(){self.updateIcon(bid)})},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_transfer:eq(1)").after(div),self.updateIcon(jsxc.jidToBid(win.data("jid")))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid")||jsxc.storage.getUserItem("buddy",bid).jid,el=win.find(".jsxc_video").add(jsxc.gui.roster.getItem(bid).find(".jsxc_video")),capableRes=self.getCapableRes(jid),targetRes=Strophe.getResourceFromJid(jid);null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){return capableRes.indexOf(val)>-1?(targetRes=val,!1):void 0}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")))}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid){var self=jsxc.webrtc;jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;self.updateIcon(jsxc.jidToBid(jid))},onMediaReady:function(event,stream){jsxc.debug("media ready");var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream,jsxc.gui.showVideoWindow(self.last_caller);var i;for(i=0;i<stream.getAudioTracks().length;i++)self.setStatus(stream.getAudioTracks().length>0?"Use local audio device.":"No local audio device."),jsxc.debug('using audio device "'+stream.getAudioTracks()[i].label+'"');for(i=0;i<stream.getVideoTracks().length;i++)self.setStatus(stream.getVideoTracks().length>0?"Use local video device.":"No local video device."),jsxc.debug('using video device "'+stream.getVideoTracks()[i].label+'"'),$("#jsxc_dialog .jsxc_localvideo").show();$(document).one("cleanup.dialog.jsxc",$.proxy(self.hangUp,self)),$(document).trigger("finish.mediaready.jsxc")},onMediaFailure:function(ev,err){this.setStatus("media failure"),jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller),"sys",$.t("Media_failure")+err.name),jsxc.debug("media failure: "+err.name)},onCallIncoming:function(event,sid){jsxc.debug("incoming call"+sid);var self=this,sess=this.conn.jingle.sessions[sid],bid=jsxc.jidToBid(sess.peerjid);if(jsxc.gui.window.postMessage(bid,"sys",$.t("Incoming_call")),jsxc.notification.notify($.t("Incoming_call"),$.t("from")+" "+bid),sess.sendRinging(),jsxc.webrtc.last_caller=sess.peerjid,jsxc.switchEvents({"mediaready.jingle":function(event,stream){self.setStatus("Accept call"),sess.localStream=stream,sess.peerconnection.addStream(stream),sess.sendAnswer(),sess.accept()},"mediafailure.jingle":function(){sess.sendTerminate("decline"),sess.terminate()}}),jsxc.webrtc.AUTO_ACCEPT)return void self.reqUserMedia();var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){$(document).trigger("accept.call.jsxc"),self.reqUserMedia()}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),sess.sendTerminate("decline"),sess.terminate()})},onCallTerminated:function(event,sid,reason,text){this.setStatus("call terminated "+sid+(reason?": "+reason+" "+text:""));var bid=jsxc.jidToBid(jsxc.webrtc.last_caller);this.localStream&&this.localStream.stop(),$(".jsxc_videoContainer").length&&($(".jsxc_remotevideo")[0].src="",$(".jsxc_localvideo")[0].src=""),this.conn.jingle.localStream=null,this.localStream=null,this.remoteStream=null;var win=$("#jsxc_dialog .jsxc_chatarea > ul > li");$("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),$(document).off("cleanup.dialog.jsxc"),$(document).off("error.jingle"),jsxc.gui.dialog.close(),jsxc.gui.window.postMessage(bid,"sys",$.t("Call_terminated")+(reason?": "+$.t(reason):"")+".")},onCallRinging:function(){this.setStatus("ringing...",0)},onRemoteStreamAdded:function(event,data,sid){this.setStatus("Remote stream for session "+sid+" added.");var stream=data.stream;this.remoteStream=stream;var sess=this.conn.jingle.sessions[sid],isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;sess.remoteDevices={video:isVideoDevice,audio:isAudioDevice},this.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),this.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(RTC.attachMediaStream($("#jsxc_dialog .jsxc_remotevideo"),stream),$("#jsxc_dialog .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},onRemoteStreamRemoved:function(event,data,sid){this.setStatus("Remote stream for session "+sid+" removed.")},onIceConnectionStateChanged:function(event,sid,sess){var sigState=sess.peerconnection.signalingState,iceCon=sess.peerconnection.iceConnectionState;if(jsxc.debug("iceGat state for "+sid,sess.peerconnection.iceGatheringState),jsxc.debug("iceCon state for "+sid,iceCon),jsxc.debug("sig state for "+sid,sigState),"stable"!==sigState||"connected"!==iceCon&&"completed"!==iceCon)"failed"===iceCon&&(jsxc.gui.window.postMessage(jsxc.jidToBid(sess.peerjid),"sys",$.t("ICE_connection_failure")),$(document).off("cleanup.dialog.jsxc"),sess.sendTerminate("failed-transport"),sess.terminate(),$(document).trigger("callterminated.jingle"));else{$("#jsxc_dialog .jsxc_deviceAvailable").show(),$("#jsxc_dialog .bubblingG").hide();var localSDP=sess.peerconnection.localDescription.sdp,remoteSDP=sess.peerconnection.remoteDescription.sdp;sess.local_fp=SDPUtil.parse_fingerprint(SDPUtil.find_line(localSDP,"a=fingerprint:")).fingerprint,sess.remote_fp=SDPUtil.parse_fingerprint(SDPUtil.find_line(remoteSDP,"a=fingerprint:")).fingerprint;var ip_regex="(\\d{1,3}\\.\\d{1,3}.\\d{1,3}\\.\\d{1,3}) \\d+ typ host";sess.remote_ip=remoteSDP.match(new RegExp(ip_regex))[1],sess.local_ip=localSDP.match(new RegExp(ip_regex))[1];for(var match,regex=new RegExp(ip_regex,"g");null!==(match=regex.exec(remoteSDP));)if(match[1]!==sess.remote_ip)return void alert("!!! WARNING !!!\n\nPossible Man-in-the-middle attack detected!\n\nYou should close the connection.");var text="<p>";text+="<b>"+$.t("Local_IP")+": </b>"+sess.local_ip+"<br />",text+="<b>"+$.t("Remote_IP")+": </b>"+sess.remote_ip+"<br />",text+="<b>"+$.t("Local_Fingerprint")+": </b>"+sess.local_fp+"<br />",text+="<b>"+$.t("Remote_Fingerprint")+": </b>"+sess.remote_fp,text+="</p>",$("#jsxc_dialog .jsxc_infobar").html(text)}},noStunCandidates:function(){},startCall:function(jid,um){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"finish.mediaready.jsxc":function(){self.setStatus("Initiate call"),jsxc.gui.window.postMessage(jsxc.jidToBid(jid),"sys",$.t("Call_started")),$(document).one("error.jingle",function(e,sid,error){"offer"===error.source&&($(document).off("cleanup.dialog.jsxc"),setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500))}),self.conn.jingle.initiate(jid,self.conn.jid.toLowerCase())},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},hangUp:function(reason,text){$(document).off("cleanup.dialog.jsxc"),jsxc.webrtc.conn.jingle.terminate(null,reason,text),$(document).trigger("callterminated.jingle")},reqUserMedia:function(um){return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),this.setStatus("please allow access to microphone and camera"),void("undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(function(sourceInfo){var availableDevices=sourceInfo.map(function(el){return el.kind});um=um.filter(function(el){return-1!==availableDevices.indexOf(el)}),getUserMediaWithConstraints(um)}):getUserMediaWithConstraints(um)))},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()}},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;$(document).one("complete.dialog.jsxc",function(){$("#jsxc_dialog .jsxc_localvideo")[0].muted=!0,$("#jsxc_dialog .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_dialog .jsxc_remotevideo"),lv=$("#jsxc_dialog .jsxc_localvideo");lv.draggable({containment:"parent"}),RTC.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_dialog").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_dialog .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(RTC.attachMediaStream(rv,self.remoteStream),$("#jsxc_dialog .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var toggleMulti=function(elem,open){$("#jsxc_dialog .jsxc_multi > div").not(elem).slideUp();var opt={complete:jsxc.gui.dialog.resize};open?elem.slideDown(opt):elem.slideToggle(opt)},win=jsxc.gui.window.open(jsxc.jidToBid(jid));win.find(".slimScrollDiv").resizable("disable"),win.find(".jsxc_textarea").slimScroll({height:413}),win.find(".jsxc_emoticons").css("top","419px"),$("#jsxc_dialog .jsxc_chatarea ul").append(win.detach()),$("#jsxc_dialog .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp()}),$("#jsxc_dialog .jsxc_snapshot").click(function(){jsxc.webrtc.snapshot(rv),toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"),!0)}),$("#jsxc_dialog .jsxc_snapshots").click(function(){toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"))}),$("#jsxc_dialog .jsxc_showchat").click(function(){var chatarea=$("#jsxc_dialog .jsxc_chatarea");chatarea.is(":hidden")?(chatarea.show(),$("#jsxc_dialog .jsxc_webrtc").width("900"),jsxc.gui.dialog.resize({width:"920px"})):(chatarea.hide(),$("#jsxc_dialog .jsxc_webrtc").width("650"),jsxc.gui.dialog.resize({width:"660px"}))}),$("#jsxc_dialog .jsxc_info").click(function(){toggleMulti($("#jsxc_dialog .jsxc_infobar"))}),$("#jsxc_dialog .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_dialog .jsxc_videoContainer").fullscreen())}),$("#jsxc_dialog .jsxc_volume").change(function(){rv[0].volume=$(this).val()}),$("#jsxc_dialog .jsxc_volume").dblclick(function(){$(this).val(.5)})}),jsxc.gui.dialog.open(jsxc.gui.template.get("videoWindow"),{noClose:!0})},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){RTC=setupRTC(),null!==RTC&&(RTCPeerconnection=RTC.peerconnection,$(document).on("add.roster.jsxc",jsxc.webrtc.onAddRosterItem),$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init))}),jsxc.xmpp={conn:null,login:function(){if(!jsxc.xmpp.conn||!jsxc.xmpp.conn.connected){var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=null,rid=null,jid=jsxc.options.xmpp.jid)}var url=jsxc.options.get("xmpp").url;$(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("ridChange",jsxc.xmpp.onRidChange),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts"),jsxc.xmpp.conn=new Strophe.Connection(url);var stropheGetUniqueId=jsxc.xmpp.conn.getUniqueId;jsxc.xmpp.conn.getUniqueId=function(suffix){var uid=stropheGetUniqueId.call(jsxc.xmpp.conn,suffix);return jsxc.storage.setItem("_uniqueId",jsxc.xmpp.conn._uniqueId),uid},jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)});var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),jsxc.restore&&sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid||jsxc.options.xmpp.jid,password||jsxc.options.xmpp.password,callback))}},logout:function(complete){if(jsxc.storage.removeItem("sid"),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeItem("_uniqueId"),!jsxc.master)return $("#jsxc_roster").remove(),$("#jsxc_windowlist").remove(),!0;if(null===jsxc.xmpp.conn)return!0;$("body").click(),jsxc.triggeredFromElement="boolean"==typeof complete?complete:!0,$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){jsxc.xmpp.conn.pause();var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);if(jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid),jsxc.storage.setItem("lastActivity",(new Date).getTime()),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":jsxc.submitLoginForm();case!1:return void jsxc.xmpp.connectionReady()}jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.onMaster(),jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close(),$(document).trigger("attached.jsxc")},attached:function(){jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence");var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps&&jsxc.options.get("carbons").enable){var conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()};if("undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))}),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.restore&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres();else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.connectionReady()},connectionReady:function(){jsxc.xmpp.conn._uniqueId=jsxc.storage.getItem("_uniqueId")||(new Date).getTime(),$(document).trigger("connectionReady.jsxc")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("lastActivity"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("ridChange",jsxc.xmpp.onRidChange),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepalive)},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm()}jsxc.triggeredFromBox&&jsxc.gui.showAuthFail()},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[]}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc")
-},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid),res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype)return $(document).trigger("error.presence.jsxc",[from,presence]),jsxc.error("[XMPP] "+$(presence).attr("code")),!0;if("subscribe"===ptype)return jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add($.t("Friendship_request"),$.t("from")+" "+jid,"gui.showApproveDialog",[jid]),!0;if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=jsxc.CONST.STATUS.indexOf(""===show?"online":show)}0===status?delete res[r]:res[r]=status;var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),data.status=max,data.res=maxVal,data.jid=jid,xVCard.length>0){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+status),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text();if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?"out":"in";return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage(bid,direction,body,!1,forwarded,stamp),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add($.t("Unknown_sender"),$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+").","gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);return"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid})),jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded}):jsxc.gui.window.postMessage(bid,"in",body,!1,forwarded,stamp),!0},onRidChange:function(ev,data){jsxc.storage.setItem("rid",data.rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(message){var from=$(message).attr("from"),jid=Strophe.getBareJidFromJid(from),bid=jsxc.jidToBid(jid),received=$(message).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var i,receivedId=received.attr("id").replace(/:/,"-"),chat=jsxc.storage.getUserItem("chat",bid);for(i=chat.length-1;i>=0;i--)if(chat[i].uid===receivedId){chat[i].received=!0,$("#"+receivedId).addClass("jsxc_received"),jsxc.storage.setUserItem("chat",bid,chat);break}}return!0},sendMessage:function(bid,msg,uid){jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].sendMsg(msg,uid):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,uid)},_sendMessage:function(jid,msg,uid){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat",xmlMsg=$msg({to:jid,type:type,id:uid}).c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){return err!==!1?jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable():void 0}}}(jQuery);
+var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"2.0.1",master:!1,role_allocation:!1,to:null,toBusy:null,toNotification:null,toNotificationDelay:500,keepalive:null,restore:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/((?:https?:\/\/|www\.|([\w\-]+\.[a-zA-Z]{2,3})(?=\b))(?:(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\)([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])?)|(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]))?)/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),date=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,time=hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+"."+month+"."+year+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){if(options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){var local=jsxc.storage.getUserItem("options")||{};return local[key]||jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,$.i18n.init({lng:lang,fallbackLng:"en",resStore:I18next,useLocalStorage:!0,localStorageExpirationTime:864e5}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1);var lastActivity=jsxc.storage.getItem("lastActivity")||0;if((new Date).getTime()-lastActivity<jsxc.options.loginTimeout&&(jsxc.restore=!0),$(document).on("connectionReady.jsxc",function(){if(null!==jsxc.options.logoutElement&&jsxc.options.logoutElement.length>0){var logout=function(){return jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}}),jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.restore)jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),"undefined"!=typeof jsxc.storage.getItem("alive")&&jsxc.restore?jsxc.checkMaster():jsxc.onMaster();else{if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.options.loginForm.form||!(jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)))return void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(){var settings=jsxc.prepareLogin();return settings===!1||"true"!==settings.xmpp.onlogin&&settings.xmpp.onlogin!==!0?!0:(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login(),!1)})}},prepareLogin:function(){var username=$(jsxc.options.loginForm.jid).val(),password=$(jsxc.options.loginForm.pass).val();if("function"!=typeof jsxc.options.loadSettings)return void jsxc.error("No loadSettings function given. Abort.");jsxc.triggeredFromBox||"dialog"!==jsxc.options.loginForm.onConnecting&&"undefined"!=typeof jsxc.options.loginForm.onConnecting||jsxc.gui.showWaitAlert($.t("Logging_in"));var settings=jsxc.options.loadSettings.call(this,username,password);if(settings===!1||null===settings||"undefined"==typeof settings)return jsxc.warn("No settings provided"),!1;settings=$.extend(!0,{},settings),"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;return jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",$.each(settings,function(key,val){jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,settings},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.storage.getUserItem("windowlist")||jsxc.storage.setUserItem("windowlist",[]),jsxc.startKeepAlive(),jsxc.options.get("otr").enable?jsxc.otr.createDSA():jsxc._onMaster()},_onMaster:function(){if(jsxc.role_allocation&&$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.role_allocation=!0,jsxc.restore&&!jsxc.restoreCompleted&&(jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")),jsxc.restore){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1}$(document).on("connectionReady.jsxc",function(){jsxc.gui.updateAvatar($("#jsxc_avatar"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}),jsxc.xmpp.login()},checkMaster:function(){jsxc.debug("check master"),jsxc.to=window.setTimeout(jsxc.onMaster,1e3),jsxc.storage.ink("alive")},startKeepAlive:function(){jsxc.keepalive=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(){jsxc.storage.ink("alive"),jsxc.role_allocation&&jsxc.storage.setItem("lastActivity",(new Date).getTime())},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepalive&&window.clearInterval(jsxc.keepalive),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.getBareJidFromJid(jid).toLowerCase()},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),jsxc.gui.roster.loaded=!0,void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var window=jsxc.storage.getUserItem("window",bid);return window?(jsxc.gui.window.init(bid),window.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,window.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=jsxc.options.loginForm.form.off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.submit()},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];return"function"==typeof fn?fn.apply(null,fnParams):void 0},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash}},jsxc.gui={emotions:[["O:-) O:)","angel"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","smile"],[":-D :D","grin"],[":-( :(","sad"],[";-) ;)","wink"],[":-P :P","tonguesmile"],["=-O","surprised"],[":kiss: :-*","kiss"],["8-) :cool:","sunglassess"],[":'-( :'( :&amp;apos;-(","crysad"],[":-/","doubt"],[":-X :X","zip"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":devil:","devil"],[":kiss: :kissing:","kissing"],["@->-- :rose: @-&gt;--","rose"],[":music:","music"],[":love:","love"],[":zzz:","tired"]],queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)}},init:function(){$("#jsxc_windowList").length>0||($("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList"),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy")))},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),ue.add(spot).removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is")+" "+jsxc.CONST.STATUS[data.status]),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info="<b>"+Strophe.getBareJidFromJid(data.jid)+"</b>\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar)},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);null!==avatarSrc?setAvatar(avatarSrc):jsxc.xmpp.conn.vcard.get(function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},Strophe.getBareJidFromJid(jid),function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)})},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();width>scrollWidth||(right>0&&(right=0),width-scrollWidth-padding>right&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(){var self=$(this);self.disableSelection();var ul=self.find("ul"),slideUp=null;slideUp=function(){ul.slideUp({complete:function(){self.removeClass("jsxc_opened")}}),$("body").off("click",null,slideUp)},$(this).click(function(){return ul.is(":hidden")?($("body").click(),$("body").one("click",slideUp)):$("body").off("click",null,slideUp),ul.slideToggle(),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){function onAuthFail(){alert.show(),jsxc.gui.dialog.resize(),$("#jsxc_dialog").find("button").trigger("btnfinished.jsxc"),$("#jsxc_dialog").find("input").one("keypress",function(){alert.hide(),jsxc.gui.dialog.resize()})}$(document).on("complete.dialog.jsxc",function(){$("#jsxc_password").focus()}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox"));var alert=$("#jsxc_dialog").find(".jsxc_alert");alert.hide(),$("#jsxc_dialog").find("form").submit(function(ev){ev.preventDefault(),$(this).find("button[data-jsxc-loading-text]").trigger("btnloading.jsxc"),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password"),jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1;var settings=jsxc.prepareLogin();settings===!1?onAuthFail():($(document).on("authfail.jsxc",onAuthFail),jsxc.xmpp.login())})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid)),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog select").change(function(){$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+$(this).prop("selectedIndex")+")").slideDown({complete:function(){jsxc.gui.dialog.resize()}})}),$("#jsxc_dialog > div:eq(1) a.creation").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close(),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) a.creation").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}),void $("#jsxc_dialog > div:eq(3) .creation").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:null}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||$(document).one("close.dialog.jsxc",function(){jsxc.gui.showContactDialog(from)}),jsxc.gui.dialog.close()})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(){var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .creation").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .creation").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .creation").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_cancel").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)navigator.hasOwnProperty(key)&&"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";return el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0?content:void 0},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),("false"===jsxc.options.get("xmpp").overwrite||jsxc.options.get("xmpp").overwrite===!1)&&$(".jsxc_fieldsetXmpp").hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var err=jsxc.options.saveSettinsPermanent.call(this,data);return"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[err]),setTimeout(function(){self.find('input[type="submit"]').effect("highlight",{color:err?"green":"red"},4e3)},200),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+"). "+$.t("Do_you_want_to_display_them");jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('.jsxc_presence[data-bid="'+bid+'"]').removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)},unreadMsg:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.roster.getItem(bid).add(win).addClass("jsxc_unreadMsg"),jsxc.storage.updateUserItem("window",bid,"unread",!0)},readMsg:function(bid){var win=jsxc.gui.window.get(bid);win.hasClass("jsxc_unreadMsg")&&(jsxc.gui.roster.getItem(bid).add(win).removeClass("jsxc_unreadMsg"),jsxc.storage.updateUserItem("window",bid,"unread",!1))},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *mailto:/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())}},jsxc.gui.roster={ready:!1,loaded:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text($.t(hideOffline?"Show_offline":"Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open("http://www.jsxc.org/manual.html","onlineHelp")
+}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence > ul > li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))}),"hidden"===jsxc.storage.getUserItem("roster")&&($("#jsxc_roster").css("right","-200px"),$("#jsxc_windowList > ul").css("paddingRight","10px"));var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_chaticon").click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),bud.toggleClass("jsxc_expand"),jsxc.gui.updateAvatar(bud,data.jid,data.avatar),!1};bud.find(".jsxc_control").click(expandClick),bud.dblclick(expandClick),bud.find(".jsxc_vcardicon").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"}),$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1,status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;return $(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||status>thisStatus?($(this).before(li),insert=!0,!1):void 0}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_options, .jsxc_control"),input=$('<input type="text" name="name"/>');options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.show(),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.show(),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid);if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(d){var duration=d||500,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList"),roster_width=roster.innerWidth(),roster_right=parseFloat($("#jsxc_roster").css("right")),state=0>roster_right?"shown":"hidden";jsxc.storage.setUserItem("roster",state),roster.animate({right:-1*(roster_width+roster_right)+"px"},duration),wl.animate({right:10-roster_right+"px"},duration),$(document).trigger("toggle.roster.jsxc",[state,duration])},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_a")+"</p>"),link=$("<a>"+$.t("new_buddy")+"</a>");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={open:function(data,o){var opt=o||{},options={};return options={onComplete:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),options.closeButton===!1&&$("#cboxClose").hide(),$("#jsxc_dialog form").each(function(){var form=$(this);form.find("button[data-jsxc-loading-text]").each(function(){var btn=$(this);btn.on("btnloading.jsxc",function(){btn.prop("disabled")||(btn.prop("disabled",!0),btn.data("jsxc_value",btn.text()),btn.text(btn.attr("data-jsxc-loading-text")))}),btn.on("btnfinished.jsxc",function(){btn.prop("disabled")&&(btn.prop("disabled",!1),btn.text(btn.data("jsxc_value")))})})}),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")},onClosed:function(){$(document).trigger("close.dialog.jsxc")},onCleanup:function(){$(document).trigger("cleanup.dialog.jsxc")},opacity:.5},opt.noClose&&(options.overlayClose=!1,options.escKey=!1,options.closeButton=!1,delete opt.noClose),$.extend(options,opt),options.html='<div id="jsxc_dialog">'+data+"</div>",$.colorbox(options),$("#jsxc_dialog")},close:function(){jsxc.debug("close dialog"),$.colorbox.close()},resize:function(options){options=$.extend({innerWidth:$("#jsxc_dialog").outerWidth(),innerHeight:$("#jsxc_dialog").outerHeight()},options||{}),$("#cboxLoadedContent").css("overflow","hidden"),$.colorbox.resize(options)}},jsxc.gui.window={init:function(bid){if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).hide().appendTo("#jsxc_windowList > ul").show("slow"),data=jsxc.storage.getUserItem("buddy",bid);if(win.data("jid",data.jid),jsxc.gui.toggleList.call(win.find(".jsxc_settings")),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_tools").click(function(){return!1}),win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13===ev.which&&(body=""),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){13===ev.which&&$(this).val()&&(jsxc.gui.window.postMessage(bid,"out",$(this).val()),$(this).val(""))}).focus(function(){jsxc.gui.readMsg(bid)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_fade").hide(),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height});var offset=win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",ui.size.height+offset+6+"px"),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])}}),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist");wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:!1})}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui.unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$('<li><div title="'+ins+'" class="jsxc_'+val[1]+'"/></li>');li.click(function(){win.find("input").val(win.find("input").val()+ins),win.find("input").focus()}),win.find(".jsxc_emoticons ul").append(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid);var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;0>left&&jsxc.gui.scrollWindowListBy(-1*left),0>right&&jsxc.gui.scrollWindowListBy(right)}return win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).hide("slow",function(){$(this).remove(),jsxc.gui.updateWindowListSB()})},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.find(".jsxc_fade").is(":hidden")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.window.get(bid).find(".jsxc_fade").slideDown(),win.removeClass("jsxc_min"),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)},_hide:function(bid){jsxc.gui.window.get(bid).addClass("jsxc_min").find(" .jsxc_fade").slideUp(),jsxc.gui.window.get(bid).trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var data=jsxc.storage.getUserItem("buddy",bid),html_msg=msg;msg=jsxc.removeHTML(msg),msg=jsxc.escapeHTML(msg),"out"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&forwarded!==!0&&(direction="sys",msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),"in"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(direction="sys",msg=$.t("unencrypted_message_received")+" "+msg),"out"===direction&&"from"===data.sub&&(direction="sys",msg=$.t("your_message_wasnt_send_because_you_have_no_valid_subscription")),encrypted=encrypted||data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;var post=jsxc.storage.saveMessage(bid,direction,msg,encrypted,forwarded,stamp,sender);"in"===direction&&$(document).trigger("postmessagein.jsxc",[bid,html_msg]),"out"===direction&&jsxc.master&&forwarded!==!0&&jsxc.xmpp.sendMessage(bid,html_msg,post.uid),jsxc.gui.window._postMessage(bid,post),"out"===direction&&"?"===msg&&jsxc.gui.window.postMessage(bid,"sys","42")},_postMessage:function(bid,post,restore){var win=jsxc.gui.window.get(bid),msg=post.msg,direction=post.direction,uid=post.uid;win.find(".jsxc_textinput").is(":not(:focus)")&&jsxc.restoreCompleted&&"in"===direction&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],function(match,p1){var i,esc="";for(i=0;i<p1.length;i++)esc+="&#"+p1.charCodeAt(i)+";";return'<div title="'+esc+'" class="jsxc_emoticon jsxc_'+val[1]+'"/>'})});var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(post.stamp)),post.received&&msgDiv.addClass("jsxc_received"),post.forwarded&&msgDiv.addClass("jsxc_forwarded"),post.encrypted&&msgDiv.addClass("jsxc_encrypted"),"sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div style="clear:both"/>'):"undefined"!=typeof post.stamp&&msgDiv.append(msgTsDiv),win.find(".jsxc_textarea").append(msgDiv),"object"==typeof post.sender&&null!==post.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof post.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(post.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(post.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(post.sender.jid),data.avatar),title=jsxc.jidToBid(post.sender.jid)}"string"==typeof post.sender.name&&(msgDiv.attr("data-name",post.sender.name),"string"!=typeof post.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,post.sender.name),""!==title&&(title="\n"+title),title=post.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+post.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title))}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid),win.find(".jsxc_textinput").is(":focus")||!jsxc.restoreCompleted||restore||jsxc.gui.unreadMsg(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){for(var chat=jsxc.storage.getUserItem("chat",bid);null!==chat&&chat.length>0;){var c=chat.pop();jsxc.gui.window._postMessage(bid,c,!0)}},clear:function(bid){jsxc.storage.setUserItem("chat",bid,[]),jsxc.gui.window.get(bid).find(".jsxc_textarea").empty()}},jsxc.gui.template={get:function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?data.name:bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=ret.replace(/\{\{root\}\}/g,ph.root),ret=$("<div>").append($(ret).i18n()).html(),ret=ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g,function(s,key){return"string"==typeof ph[key]?ph[key]:s})):(jsxc.debug("Template not available: "+name),name)},authenticationDialog:'<h3>Verification</h3> <p data-i18n="Authenticating_a_buddy_helps_"></p> <div> <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy" style="margin:0px;"></p> <select size="1"> <option data-i18n="Select_method"></option> <option data-i18n="Manual"></option> <option data-i18n="Question"></option> <option data-i18n="Secret"></option> </select> </div> <div style="display:none"> <p data-i18n="To_verify_the_fingerprint_" class=".jsxc_explanation"></p> <p><strong data-i18n="Your_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{my_priv_fingerprint}}</span></p> <p><strong data-i18n="Buddy_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{bid_priv_fingerprint}}</span></p><br /> <p class="jsxc_right"><a href="#" data-i18n="Close" class="jsxc_close button"></a> <a href="#" data-i18n="Compared" class="button creation"></a></p> </div> <div style="display:none"> <p data-i18n="To_authenticate_using_a_question_" class=".jsxc_explanation"></p> <p><label for="jsxc_quest" data-i18n="Question"></label><input type="text" name="quest" id="jsxc_quest" /></p> <p><label for="jsxc_secret2" data-i18n="Secret"></label><input type="text" name="secret2" id="jsxc_secret2" /></p> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button creation" data-i18n="Ask"></a></p> </div> <div style="display:none"> <p class=".jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p> <p><label for="jsxc_secret" data-i18n="Secret"></label><input type="text" name="secret" id="jsxc_secret" /></p> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button creation" data-i18n="Compare"></a></p> </div>',fingerprintsDialog:'<div> <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p> <p><strong data-i18n="Your_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{my_priv_fingerprint}}</span></p> <p><strong data-i18n="Buddy_fingerprint"></strong><br /> <span style="text-transform:uppercase">{{bid_priv_fingerprint}}</span></p><br /> <p class="jsxc_right"><a href="#" class="button jsxc_close" data-i18n="Close"></a></p> </div>',chatWindow:'<li class="jsxc_min jsxc_windowItem"> <div class="jsxc_window"> <div class="jsxc_bar"> <div class="jsxc_avatar">☺</div> <div class="jsxc_tools"> <div class="jsxc_settings"> <ul> <li class="jsxc_fingerprints jsxc_otr jsxc_disabled" data-i18n="Fingerprints"></li> <li class="jsxc_verification" data-i18n="Authentication"></li> <li class="jsxc_transfer jsxc_otr jsxc_disabled" data-i18n="start_private"></li> <li class="jsxc_clear" data-i18n="clear_history"></li> </ul> </div> <div class="jsxc_transfer jsxc_otr jsxc_disabled"/> <div class="jsxc_close">×</div> </div> <div class="jsxc_name"/> <div class="jsxc_cycle"/> </div> <div class="jsxc_fade"> <div class="jsxc_gradient"/> <div class="jsxc_textarea"/> <div class="jsxc_emoticons"><ul/></div> <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message"/> </div> </div> </li>',roster:'<div id="jsxc_roster"> <ul id="jsxc_buddylist"></ul> <div class="jsxc_bottom jsxc_presence" data-bid="own"> <div id="jsxc_avatar"> <div class="jsxc_avatar">☺</div> </div> <div id="jsxc_menu"> <span></span> <ul> <li class="jsxc_settings" data-i18n="Settings"></li> <li class="jsxc_muteNotification" data-i18n="Mute"></li> <li class="jsxc_addBuddy" data-i18n="Add_buddy"></li> <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li> <li class="jsxc_onlineHelp" data-i18n="Online_help"></li> <li class="jsxc_about" data-i18n="About"></li> </ul> </div> <div id="jsxc_notice"> <span></span> <ul></ul> </div> <div id="jsxc_presence"> <span data-i18n="Online"></span> <ul> <li data-pres="online" class="jsxc_online" data-i18n="Online"></li> <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li> <li data-pres="away" class="jsxc_away" data-i18n="Away"></li> <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li> <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li> <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li> </ul> </div> </div> <div id="jsxc_toggleRoster"></div> </div>',windowList:'<div id="jsxc_windowList"> <ul></ul> </div> <div id="jsxc_windowListSB"> <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div> <div class="jsxc_scrollRight jsxc_disabled">&gt;</div> </div>',rosterBuddy:'<li> <div class="jsxc_avatar">☺</div> <div class="jsxc_control"></div> <div class="jsxc_name"/> <div class="jsxc_options jsxc_right"> <div class="jsxc_rename" data-i18n="[title]rename_buddy">✎</div> <div class="jsxc_delete" data-i18n="[title]delete_buddy">✘</div> </div> <div class="jsxc_options jsxc_left"> <div class="jsxc_chaticon" data-i18n="[title]send_message"/> <div class="jsxc_vcardicon" data-i18n="[title]get_info">i</div> </div> </li>',loginBox:'<h3 data-i18n="Login"></h3> <form> <p><label for="jsxc_username" data-i18n="Username"></label> <input type="text" name="username" id="jsxc_username" required="required" value="{{my_node}}"/></p> <p><label for="jsxc_password" data-i18n="Password"></label> <input type="password" name="password" required="required" id="jsxc_password" /></p> <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div> <div class="bottom_submit_section"> <button type="reset" class="jsxc_btn jsxc_close" name="clear" data-i18n="Cancel"/> <button type="submit" class="jsxc_btn jsxc_btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect"/> </div> </form>',contactDialog:'<h3 data-i18n="Add_buddy"></h3> <p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p> <form> <p><label for="jsxc_username" data-i18n="Username"></label> <input type="text" name="username" id="jsxc_username" list="jsxc_userlist" pattern="^[^\\x22&\'\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" /></p> <datalist id="jsxc_userlist"></datalist> <p><label for="jsxc_alias" data-i18n="Alias"></label> <input type="text" name="alias" id="jsxc_alias" /></p> <p class="jsxc_right"> <input class="button" type="submit" data-i18n="[value]Add" /> </p> <form>',approveDialog:'<h3 data-i18n="Subscription_request"></h3> <p><span data-i18n="You_have_a_request_from"></span><b class="jsxc_their_jid"></b>.</p> <p class="jsxc_right"><a href="#" class="button jsxc_deny" data-i18n="Deny"></a> <a href="#" class="button creation jsxc_approve" data-i18n="Approve"></a></p>',removeDialog:'<h3 data-i18n="Remove_buddy"></h3> <p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p> <p class="jsxc_right"><a href="#" class="button jsxc_cancel jsxc_close" data-i18n="Cancel"></a> <a href="#" class="button creation" data-i18n="Remove"></a></p>',waitAlert:'<h3>{{msg}}</h3> <p data-i18n="Please_wait"></p> <p class="jsxc_center"><img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /></p>',alert:'<h3 data-i18n="Alert"></h3> <p>{{msg}}</p> <p class="jsxc_right"><a href="#" data-i18n="Ok" class="button jsxc_close jsxc_cancel"></a></p>',authFailDialog:'<h3 data-i18n="Login_failed"></h3> <p data-i18n="Sorry_we_cant_authentikate_"></p> <p class="jsxc_right"> <a class="button jsxc_cancel" data-i18n="Continue_without_chat"></a> <a class="button creation" data-i18n="Retry"></a> </p>',confirmDialog:'<p>{{msg}}</p> <p class="jsxc_right"> <a class="button jsxc_cancel jsxc_close" data-i18n="Dismiss"></a> <a class="button creation" data-i18n="Confirm"></a> </p>',pleaseAccept:'<p data-i18n="Please_accept_"></p>',aboutDialog:"<h3>JavaScript XMPP Chat</h3> <p><b>Version: </b>"+jsxc.version+'<br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a></p> <p><i>Released under the MIT license</i></p> <p>Real-time chat app for {{app_name}} and more.<br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.</p> <p><b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>, <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a></p> <p class="jsxc_libraries"><b>Libraries: </b><a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/ESTOS/strophe.jingle">strophe.jingle</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT)</p> <p class="jsxc_right"><a class="button jsxc_debuglog" href="#">Show debug log</a></p>',vCard:'<h3><span data-i18n="Info_about"></span> <span>{{bid_name}}</span></h3> <ul class="jsxc_vCard"></ul> <p><img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...</p>',settings:'<h3 data-i18n="User_settings"></h3> <p></p> <form> <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset"> <legend data-i18n="Login_options"></legend> <label for="xmpp-url" data-i18n="BOSH_url"></label><input type="text" id="xmpp-url" readonly="readonly"/><br /> <label for="xmpp-username" data-i18n="Username"></label><input type="text" id="xmpp-username"/><br /> <label for="xmpp-domain" data-i18n="Domain"></label><input type="text" id="xmpp-domain"/><br /> <label for="xmpp-resource" data-i18n="Resource"></label><input type="text" id="xmpp-resource"/><br /> <label for="xmpp-onlogin" data-i18n="On_login"></label><input type="checkbox" id="xmpp-onlogin" /><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form> <p></p> <form> <fieldset class="jsxc_fieldsetPriority jsxc_fieldset"> <legend data-i18n="Priority"></legend> <label for="priority-online" data-i18n="Online"></label><input type="number" value="0" id="priority-online" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-chat" data-i18n="Chatty"></label><input type="number" value="0" id="priority-chat" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-away" data-i18n="Away"></label><input type="number" value="0" id="priority-away" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-xa" data-i18n="Extended_away"></label><input type="number" value="0" id="priority-xa" min="-128" max="127" step="1" required="required"/><br /> <label for="priority-dnd" data-i18n="dnd"></label><input type="number" value="0" id="priority-dnd" min="-128" max="127" step="1" required="required"/><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form> <p></p> <form data-onsubmit="xmpp.carbons.refresh"> <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset"> <legend data-i18n="Carbon_copy"></legend> <label for="carbons-enable" data-i18n="Enable"></label><input type="checkbox" id="carbons-enable" /><br /> <input type="submit" data-i18n="[value]Save"/> </fieldset> </form>'},jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3> <p class=".jsxc_explanation" data-i18n="muc_explanation"></p> <p><label for="jsxc_server" data-i18n="Server"></label> <input type="text" name="server" id="jsxc_server" required="required" readonly="readonly" /></p> <p><label for="jsxc_room" data-i18n="Room"></label> <input type="text" name="room" id="jsxc_room" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" /></p> <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p> <datalist id="jsxc_roomlist"> <p><label for="jsxc_roomlist_select"></label><select id="jsxc_roomlist_select"><option></option><option>workaround</option></select></p> </datalist> <p><label for="jsxc_nickname" data-i18n="Nickname"></label> <input type="text" name="nickname" id="jsxc_nickname" /></p> <p><label for="jsxc_password" data-i18n="Password"></label> <input type="text" name="password" id="jsxc_password" /></p> <div class="jsxc_msg"></div> <p class="jsxc_right"> <span class="jsxc_warning"></span> <a href="#" class="button jsxc_close" data-i18n="Close"></a> <a href="#" class="button jsxc_continue" data-i18n="Continue"> <a href="#" class="button jsxc_join" data-i18n="Join"></a> </p>',jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;
+return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul").append(li)},showJoinChat:function(){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),dialog.find("#jsxc_server").val(jsxc.options.get("muc").server);var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),dialog.find(".jsxc_warning").text(msg)};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),self.conn.muc.listRooms(jsxc.options.get("muc").server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(){jsxc.warn("Could not load rooms"),dialog.find(".jsxc_inputinfo").hide()}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),password=$("#jsxc_password").val()||null;if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(room.match(/@(.*)$/)||(room+="@"+jsxc.options.get("muc").server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){return ev.preventDefault(),self.join(room,nickname,password,roomName,subject),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18n.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else dialog.find(".jsxc_warning").text($.t("You_already_joined_this_room"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").empty(),void(dialog.find(".jsxc_continue").is(":hidden")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},join:function(room,nickname,password,roomName,subject){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password)},leave:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){var self=jsxc.muc;jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage(room,"sys",$.t("This_room_will_be_closed"));var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata)},initWindow:function(event,win){var self=jsxc.muc,data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if(!jsxc.xmpp.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});if(!(self.conn.muc.roomNames.indexOf(data.jid)<0)){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_transfer").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)}),setTimeout(function(){var top=win.find(".jsxc_emoticons").position().top+win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",top+"px")},400);var destroy=$("<li>");if(destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append(destroy),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show()})}var leave=$("<li>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append(leave)}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),0===jsxc.gui.roster.getItem(room).length){jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),jsxc.storage.removeUserItem("chat",room),member={};var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room),jsxc.gui.window.open(room),jsxc.gui.dialog.close()}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage(room,"sys",$.t("This_room_has_been_closed")),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage(room,"sys",$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0}))):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage(room,"sys",$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0}))}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage(room,"sys",$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_enabled"))},201:function(room){var self=jsxc.muc;self.conn.muc.createInstantRoom(room)},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_banned")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0}))},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_kicked")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0}))},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_affiliation"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0}))},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_membersonly"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0}))},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_shutdown"))}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage(room,"in",reason,!1,!1,null,actor):jsxc.gui.window.postMessage(room,"sys",reason))},insertMember:function(room,nickname,memberdata){var self=jsxc.muc,win=jsxc.gui.window.get(room),jid=memberdata.jid,m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===jsxc.jidToBid(self.conn.jid)&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,width>scrollWidth||left>0?left=0:width-scrollWidth>left&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(jsxc.el_exists($("#"+id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.postMessage(room,"in",body,!1,!1,stamp,sender)}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage(room,"sys",$.t("changed_subject_to",{nickname:nickname,subject:subject.text()}))}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length?!0:($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_item-not-found")):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_forbidden")):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_not-acceptable")):jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send")),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;"groupchat"===data.type&&bud.find(".jsxc_delete").off("click").click(function(){return self.leave(room),!1})}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).one("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val.msg,val.description,val.fnName,val.fnParams,key)}},add:function(msg,description,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>");if(notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num),!id){var saved=jsxc.storage.getUserItem("notices")||{};saved[nid]={msg:msg,description:description,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)}},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices");delete s[nid],jsxc.storage.setUserItem("notices",s)},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){return val.fnName===fnName?(has=!0,!1):void 0}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from")+" "+data.name,msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return window.Notification?!0:!1},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add($.t("Notifications")+"?",$.t("Should_we_notify_you_"),"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),$(document).trigger(jsxc.notification.hasPermission()?"notificationready.jsxc":"notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!0,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,overwrite:!1,onlogin:!0},priority:{online:0,chat:0,away:0,xa:0,dnd:0},loginForm:{form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit"},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",loginTimeout:6e5,displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:function(){},saveSettinsPermanent:function(){},carbons:{enable:!1},getUsers:null},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage(bid,"in",d.msg,d.encrypted,d.forwarded,d.stamp):jsxc.gui.window.postMessage(bid,"sys",$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",d.encrypted,d.forwarded,d.stamp)},sendMessage:function(jid,msg,uid){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,uid)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage(bid,"sys",$.t("trying_to_start_private_conversation"));break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg=$.t(jsxc.otr.objects[bid].trust?"Verified":"Unverified")+" "+$.t("private_conversation_started");jsxc.gui.window.postMessage(bid,"sys",msg);break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage(bid,"sys",$.t("private_conversation_aborted"))):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage(bid,"sys",$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":if(jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_request_received")),$("#jsxc_dialog").length>0){jsxc.otr.objects[bid].sm.abort();break}jsxc.otr.onSmpQuestion(bid,data),jsxc.storage.setUserItem("smp_"+bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")):jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_failed")),jsxc.storage.removeUserItem("smp_"+bid),jsxc.gui.dialog.close();break;case"abort":jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_aborted"));break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded})}),jsxc.otr.objects[bid].on("io",function(msg,uid){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,uid)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage(bid,"sys","[OTR] "+$.t(err)),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".creation").text("Answer"),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("your_buddy_is_attempting_to_determine_")+" "+$.t("to_authenticate_to_your_buddy")+$.t("enter_the_answer_and_click_answer"))):$("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("your_buddy_is_attempting_to_determine_")+" "+$.t("to_authenticate_to_your_buddy")+$.t("enter_the_secret")),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp_"+bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){"function"==typeof OTR&&(0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid))},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv){if("function"!=typeof OTR)return jsxc.warn("OTR support disabled"),OTR={},OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2},void jsxc._onMaster();if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/build/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(jsxc._onMaster(),worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()}},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),jsxc.otr.dsaFallback!==!1&&jsxc._onMaster()},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback?jsxc.gui.dialog.close():$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&"lastActivity"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value)),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;
+var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&"lastActivity"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"lastActivity"){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),void jsxc.storage.ink("alive");if(!(jsxc.master||"alive"!==key&&"alive_busy"!==key||jsxc.triggeredFromElement))return window.clearTimeout(jsxc.to),jsxc.to=window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60)),void(jsxc.role_allocation||jsxc.onSlave());if(key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^chat"+jsxc.storage.SEP)))for(var data,el,posts=JSON.parse(e.newValue);posts.length>0;)data=posts.pop(),el=$("#"+data.uid),0===el.length?(jsxc.master&&"out"===data.direction&&jsxc.xmpp.sendMessage(bid,data.msg,data.uid),jsxc.gui.window._postMessage(bid,data)):data.received&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid),void jsxc.gui.window.setText(bid,n.text)):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close(),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.otr.onSmpQuestion(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close(),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(!e.oldValue)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),(o.status!==n.status||o.sub!==n.sub)&&jsxc.gui.roster.reorder(bid)}if(jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"sid"===key)return void(e.newValue||jsxc.xmpp.logout());"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid))}}}},saveMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var chat=jsxc.storage.getUserItem("chat",bid)||[],uid=(new Date).getTime()+":msg";chat.length>jsxc.options.get("numberOfMsg")&&chat.pop();var post={direction:direction,msg:msg,uid:uid.replace(/:/,"-"),received:!1,encrypted:encrypted||!1,forwarded:forwarded||!1,stamp:stamp||(new Date).getTime(),sender:sender};return chat.unshift(post),jsxc.storage.setUserItem("chat",bid,chat),post},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3> <p><span data-i18n="Do_you_want_to_accept_the_call_from"></span> {{bid_name}}?</p> <p class="jsxc_right"> <a href="#" class="button jsxc_reject" data-i18n="Reject"></a> <a href="#" class="button creation jsxc_accept" data-i18n="Accept"></a> </p>',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>',jsxc.gui.template.videoWindow='<div class="jsxc_webrtc"> <div class="jsxc_chatarea"> <ul></ul> </div> <div class="jsxc_videoContainer"> <video class="jsxc_localvideo" autoplay></video> <video class="jsxc_remotevideo" autoplay></video> <div class="jsxc_status"></div> <div class="bubblingG"> <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span> </div> <div class="jsxc_noRemoteVideo"> <div> <div></div> <p data-i18n="No_video_signal"></p> <div></div> </div> </div> </div> <div class="jsxc_controlbar"> <button type="button" class="jsxc_hangUp" data-i18n="hang_up"></button> <input type="range" class="jsxc_volume" min="0.0" max="1.0" step="0.05" value="0.5" /> <div class="jsxc_buttongroup"> <button type="button" class="jsxc_snapshot" data-i18n="snapshot"></button><button type="button" class="jsxc_snapshots">&#9660;</button> </div> <!-- <button type="button" class="jsxc_mute_local" data-i18n="mute_my_audio"></button> <button type="button" class="jsxc_pause_local" data-i18n="pause_my_video"></button> --> <button type="button" class="jsxc_showchat" data-i18n="chat"></button> <button type="button" class="jsxc_fullscreen" data-i18n="fullscreen"></button> <button type="button" class="jsxc_info" data-i18n="Info"></button> </div> <div class="jsxc_multi"> <div class="jsxc_snapshotbar"> <p>No pictures yet!</p> </div>\n <!--<div class="jsxc_chatarea"> <ul></ul> </div>--> <div class="jsxc_infobar"></div> </div> </div>',jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],chatJids:{},init:function(){var self=jsxc.webrtc;return self.conn=jsxc.xmpp.conn,"firefox"===RTC.browser&&(self.conn.jingle.media_constraints.mandatory.MozDontOfferDataChannel=!0),self.conn.jingle?(self.conn.jingle.PRANSWER=!1,self.conn.jingle.AUTOACCEPT=!1,self.conn.jingle.ice_config=jsxc.storage.getUserItem("iceConfig"),self.conn.jingle.MULTIPARTY=!1,self.conn.jingle.pc_constraints=RTC.pc_constraints,$(document).on("message.jsxc",$.proxy(self.onMessage,self)),$(document).on("presence.jsxc",$.proxy(self.onPresence,self)),$(document).on("mediaready.jingle",$.proxy(self.onMediaReady,self)),$(document).on("mediafailure.jingle",$.proxy(self.onMediaFailure,self)),$(document).on("callincoming.jingle",$.proxy(self.onCallIncoming,self)),$(document).on("callterminated.jingle",$.proxy(self.onCallTerminated,self)),$(document).on("ringing.jingle",$.proxy(self.onCallRinging,self)),$(document).on("remotestreamadded.jingle",$.proxy(self.onRemoteStreamAdded,self)),$(document).on("remotestreamremoved.jingle",$.proxy(self.onRemoteStreamRemoved,self)),$(document).on("iceconnectionstatechange.jingle",$.proxy(self.onIceConnectionStateChanged,self)),$(document).on("nostuncandidates.jingle",$.proxy(self.noStunCandidates,self)),$(document).on("error.jingle",function(ev,sid,error){jsxc.error("[JINGLE]",error)}),self.conn.disco&&self.conn.disco.addFeature("urn:xmpp:jingle:apps:dtls:0"),self.conn.caps&&$(document).on("caps.strophe",$.proxy(self.onCaps,self)),void self.getTurnCrendentials()):void jsxc.error("No jingle plugin found!")},getTurnCrendentials:function(){if(!jsxc.options.turnCredentialsPath)return void jsxc.debug("No path for TURN credentials defined!");var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return ttl>0?void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500):void $.ajax(jsxc.options.turnCredentialsPath,{async:!0,success:function(data){var iceConfig={iceServers:[{url:"turn:"+data.url,credential:data.credential,username:data.username}]};jsxc.webrtc.conn.jingle.ice_config=iceConfig,jsxc.storage.setUserItem("iceConfig",iceConfig),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*data.ttl)},dataType:"json"})},getCapableRes:function(jid){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=jsxc.storage.getUserItem("res",bid)||[],available=[];return $.each(res,function(r){self.conn.caps.hasFeatureByJid(bid+"/"+r,self.reqVideoFeatures)&&available.push(r)}),available},onAddRosterItem:function(event,bid,data,el){var self=jsxc.webrtc;if(!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.onAddRosterItem(null,bid,data,el)});var videoIcon=$('<div class="jsxc_video jsxc_disabled" title="'+$.t("Start_video_call")+'"></div>');videoIcon.click(function(){return self.startCall(data.jid),!1}),el.find(".jsxc_options.jsxc_left").append(videoIcon),el.on("extra.jsxc",function(){self.updateIcon(bid)})},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_transfer:eq(1)").after(div),self.updateIcon(jsxc.jidToBid(win.data("jid")))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),ls=jsxc.storage.getUserItem("buddy",bid);if("string"!=typeof jid){if(!ls||"string"!=typeof ls.jid)return void jsxc.debug("[webrtc] Could not update icon, because could not find jid for "+bid);jid=ls.jid}var el=win.find(".jsxc_video").add(jsxc.gui.roster.getItem(bid).find(".jsxc_video")),capableRes=self.getCapableRes(jid),targetRes=Strophe.getResourceFromJid(jid);null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){return capableRes.indexOf(val)>-1?(targetRes=val,!1):void 0}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")))}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid,status,presence){var self=jsxc.webrtc;0===$(presence).find('c[xmlns="'+Strophe.NS.CAPS+'"]').length&&(jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid)))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;jsxc.gui.roster.loaded?self.updateIcon(jsxc.jidToBid(jid)):$(document).on("cloaded.roster.jsxc",function(){self.updateIcon(jsxc.jidToBid(jid))})},onMediaReady:function(event,stream){jsxc.debug("media ready");var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream,jsxc.gui.showVideoWindow(self.last_caller);var i;for(i=0;i<stream.getAudioTracks().length;i++)self.setStatus(stream.getAudioTracks().length>0?"Use local audio device.":"No local audio device."),jsxc.debug('using audio device "'+stream.getAudioTracks()[i].label+'"');for(i=0;i<stream.getVideoTracks().length;i++)self.setStatus(stream.getVideoTracks().length>0?"Use local video device.":"No local video device."),jsxc.debug('using video device "'+stream.getVideoTracks()[i].label+'"'),$("#jsxc_dialog .jsxc_localvideo").show();$(document).one("cleanup.dialog.jsxc",$.proxy(self.hangUp,self)),$(document).trigger("finish.mediaready.jsxc")},onMediaFailure:function(ev,err){this.setStatus("media failure"),jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller),"sys",$.t("Media_failure")+err.name),jsxc.debug("media failure: "+err.name)},onCallIncoming:function(event,sid){jsxc.debug("incoming call"+sid);var self=this,sess=this.conn.jingle.sessions[sid],bid=jsxc.jidToBid(sess.peerjid);if(jsxc.gui.window.postMessage(bid,"sys",$.t("Incoming_call")),jsxc.notification.notify($.t("Incoming_call"),$.t("from")+" "+bid),sess.sendRinging(),jsxc.webrtc.last_caller=sess.peerjid,jsxc.switchEvents({"mediaready.jingle":function(event,stream){self.setStatus("Accept call"),sess.localStream=stream,sess.peerconnection.addStream(stream),sess.sendAnswer(),sess.accept()},"mediafailure.jingle":function(){sess.sendTerminate("decline"),sess.terminate()}}),jsxc.webrtc.AUTO_ACCEPT)return void self.reqUserMedia();var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){$(document).trigger("accept.call.jsxc"),self.reqUserMedia()}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),sess.sendTerminate("decline"),sess.terminate()})},onCallTerminated:function(event,sid,reason,text){this.setStatus("call terminated "+sid+(reason?": "+reason+" "+text:""));var bid=jsxc.jidToBid(jsxc.webrtc.last_caller);this.localStream&&this.localStream.stop(),$(".jsxc_videoContainer").length&&($(".jsxc_remotevideo")[0].src="",$(".jsxc_localvideo")[0].src=""),this.conn.jingle.localStream=null,this.localStream=null,this.remoteStream=null;var win=$("#jsxc_dialog .jsxc_chatarea > ul > li");$("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),$(document).off("cleanup.dialog.jsxc"),$(document).off("error.jingle"),jsxc.gui.dialog.close(),jsxc.gui.window.postMessage(bid,"sys",$.t("Call_terminated")+(reason?": "+$.t(reason):"")+".")},onCallRinging:function(){this.setStatus("ringing...",0)},onRemoteStreamAdded:function(event,data,sid){this.setStatus("Remote stream for session "+sid+" added.");var stream=data.stream;this.remoteStream=stream;var sess=this.conn.jingle.sessions[sid],isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;sess.remoteDevices={video:isVideoDevice,audio:isAudioDevice},this.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),this.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(RTC.attachMediaStream($("#jsxc_dialog .jsxc_remotevideo"),stream),$("#jsxc_dialog .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},onRemoteStreamRemoved:function(event,data,sid){this.setStatus("Remote stream for session "+sid+" removed.")},onIceConnectionStateChanged:function(event,sid,sess){var sigState=sess.peerconnection.signalingState,iceCon=sess.peerconnection.iceConnectionState;if(jsxc.debug("iceGat state for "+sid,sess.peerconnection.iceGatheringState),jsxc.debug("iceCon state for "+sid,iceCon),jsxc.debug("sig state for "+sid,sigState),"stable"!==sigState||"connected"!==iceCon&&"completed"!==iceCon)"failed"===iceCon&&(jsxc.gui.window.postMessage(jsxc.jidToBid(sess.peerjid),"sys",$.t("ICE_connection_failure")),$(document).off("cleanup.dialog.jsxc"),sess.sendTerminate("failed-transport"),sess.terminate(),$(document).trigger("callterminated.jingle"));else{$("#jsxc_dialog .jsxc_deviceAvailable").show(),$("#jsxc_dialog .bubblingG").hide();var localSDP=sess.peerconnection.localDescription.sdp,remoteSDP=sess.peerconnection.remoteDescription.sdp;sess.local_fp=SDPUtil.parse_fingerprint(SDPUtil.find_line(localSDP,"a=fingerprint:")).fingerprint,sess.remote_fp=SDPUtil.parse_fingerprint(SDPUtil.find_line(remoteSDP,"a=fingerprint:")).fingerprint;var text="<p>";text+="<b>"+$.t("Local_Fingerprint")+": </b>"+sess.local_fp+"<br />",text+="<b>"+$.t("Remote_Fingerprint")+": </b>"+sess.remote_fp,text+="</p>",$("#jsxc_dialog .jsxc_infobar").html(text)}},noStunCandidates:function(){},startCall:function(jid,um){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"finish.mediaready.jsxc":function(){self.setStatus("Initiate call"),jsxc.gui.window.postMessage(jsxc.jidToBid(jid),"sys",$.t("Call_started")),$(document).one("error.jingle",function(e,sid,error){"offer"===error.source&&($(document).off("cleanup.dialog.jsxc"),setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500))}),self.conn.jingle.initiate(jid,self.conn.jid.toLowerCase())},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},hangUp:function(reason,text){$(document).off("cleanup.dialog.jsxc"),jsxc.webrtc.conn.jingle.terminate(null,reason,text),$(document).trigger("callterminated.jingle")},reqUserMedia:function(um){return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),this.setStatus("please allow access to microphone and camera"),void("undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(function(sourceInfo){var availableDevices=sourceInfo.map(function(el){return el.kind});um=um.filter(function(el){return-1!==availableDevices.indexOf(el)}),getUserMediaWithConstraints(um)}):getUserMediaWithConstraints(um)))},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()}},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;$(document).one("complete.dialog.jsxc",function(){$("#jsxc_dialog .jsxc_localvideo")[0].muted=!0,$("#jsxc_dialog .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_dialog .jsxc_remotevideo"),lv=$("#jsxc_dialog .jsxc_localvideo");lv.draggable({containment:"parent"}),RTC.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_dialog").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_dialog .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(RTC.attachMediaStream(rv,self.remoteStream),$("#jsxc_dialog .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var toggleMulti=function(elem,open){$("#jsxc_dialog .jsxc_multi > div").not(elem).slideUp();var opt={complete:jsxc.gui.dialog.resize};open?elem.slideDown(opt):elem.slideToggle(opt)},win=jsxc.gui.window.open(jsxc.jidToBid(jid));win.find(".slimScrollDiv").resizable("disable"),win.find(".jsxc_textarea").slimScroll({height:413}),win.find(".jsxc_emoticons").css("top","419px"),$("#jsxc_dialog .jsxc_chatarea ul").append(win.detach()),$("#jsxc_dialog .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp()}),$("#jsxc_dialog .jsxc_snapshot").click(function(){jsxc.webrtc.snapshot(rv),toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"),!0)}),$("#jsxc_dialog .jsxc_snapshots").click(function(){toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"))}),$("#jsxc_dialog .jsxc_showchat").click(function(){var chatarea=$("#jsxc_dialog .jsxc_chatarea");chatarea.is(":hidden")?(chatarea.show(),$("#jsxc_dialog .jsxc_webrtc").width("900"),jsxc.gui.dialog.resize({width:"920px"})):(chatarea.hide(),$("#jsxc_dialog .jsxc_webrtc").width("650"),jsxc.gui.dialog.resize({width:"660px"}))}),$("#jsxc_dialog .jsxc_info").click(function(){toggleMulti($("#jsxc_dialog .jsxc_infobar"))}),$("#jsxc_dialog .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_dialog .jsxc_videoContainer").fullscreen())}),$("#jsxc_dialog .jsxc_volume").change(function(){rv[0].volume=$(this).val()}),$("#jsxc_dialog .jsxc_volume").dblclick(function(){$(this).val(.5)})}),jsxc.gui.dialog.open(jsxc.gui.template.get("videoWindow"),{noClose:!0})},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){RTC=setupRTC(),null!==RTC&&(RTCPeerconnection=RTC.peerconnection,$(document).on("add.roster.jsxc",jsxc.webrtc.onAddRosterItem),$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init))}),jsxc.xmpp={conn:null,login:function(){if(!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated){var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=null,rid=null,jid=jsxc.options.xmpp.jid)}var url=jsxc.options.get("xmpp").url;jsxc.xmpp.conn&&jsxc.xmpp.conn.connected||($(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("ridChange",jsxc.xmpp.onRidChange),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts")),jsxc.xmpp.conn=new Strophe.Connection(url);var stropheGetUniqueId=jsxc.xmpp.conn.getUniqueId;jsxc.xmpp.conn.getUniqueId=function(suffix){var uid=stropheGetUniqueId.call(jsxc.xmpp.conn,suffix);return jsxc.storage.setItem("_uniqueId",jsxc.xmpp.conn._uniqueId),uid},jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)});var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTING:$(document).trigger("connecting.jsxc");break;case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),jsxc.restore&&sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid||jsxc.options.xmpp.jid,password||jsxc.options.xmpp.password,callback))}},logout:function(complete){if(jsxc.storage.removeItem("sid"),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeItem("_uniqueId"),!jsxc.master)return $("#jsxc_roster").remove(),$("#jsxc_windowlist").remove(),!0;if(null===jsxc.xmpp.conn)return!0;$("body").click(),jsxc.triggeredFromElement="boolean"==typeof complete?complete:!0,$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){jsxc.xmpp.conn.pause();var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);if(jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid),jsxc.storage.setItem("lastActivity",(new Date).getTime()),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":jsxc.submitLoginForm();case!1:return void jsxc.xmpp.connectionReady()}jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.onMaster(),jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close(),$(document).trigger("attached.jsxc")},attached:function(){jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence");var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps&&jsxc.options.get("carbons").enable){var conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()};if("undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))}),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.restore&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres();else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.connectionReady()},connectionReady:function(){jsxc.xmpp.conn._uniqueId=jsxc.storage.getItem("_uniqueId")||(new Date).getTime(),$(document).trigger("connectionReady.jsxc")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("lastActivity"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("ridChange",jsxc.xmpp.onRidChange),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepalive)
+},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm();break;case"quiet":case!1:return}},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[]}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.gui.roster.loaded=!0,jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc")},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid),res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype)return $(document).trigger("error.presence.jsxc",[from,presence]),jsxc.error("[XMPP] "+$(presence).attr("code")),!0;if("subscribe"===ptype)return jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add($.t("Friendship_request"),$.t("from")+" "+jid,"gui.showApproveDialog",[jid]),!0;if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=jsxc.CONST.STATUS.indexOf(""===show?"online":show)}0===status?delete res[r]:res[r]=status;var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),data.status=max,data.res=maxVal,data.jid=jid,xVCard.length>0){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+status),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text();if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?"out":"in";return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage(bid,direction,body,!1,forwarded,stamp),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add($.t("Unknown_sender"),$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+").","gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);return"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid})),jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded}):jsxc.gui.window.postMessage(bid,"in",body,!1,forwarded,stamp),!0},onRidChange:function(ev,data){jsxc.storage.setItem("rid",data.rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(message){var from=$(message).attr("from"),jid=Strophe.getBareJidFromJid(from),bid=jsxc.jidToBid(jid),received=$(message).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var i,receivedId=received.attr("id").replace(/:/,"-"),chat=jsxc.storage.getUserItem("chat",bid);for(i=chat.length-1;i>=0;i--)if(chat[i].uid===receivedId){chat[i].received=!0,$("#"+receivedId).addClass("jsxc_received"),jsxc.storage.setUserItem("chat",bid,chat);break}}return!0},sendMessage:function(bid,msg,uid){jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].sendMsg(msg,uid):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,uid)},_sendMessage:function(jid,msg,uid){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat",xmlMsg=$msg({to:jid,type:type,id:uid}).c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){return err!==!1?jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable():void 0}}}(jQuery);
//# sourceMappingURL=jsxc.min.js.map \ No newline at end of file
diff --git a/build/jsxc.min.js.map b/build/jsxc.min.js.map
index 1c8edc27..eb02abbc 100644
--- a/build/jsxc.min.js.map
+++ b/build/jsxc.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"jsxc.min.js","sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepalive","restore","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","getFormattedTime","unixtime","msgDate","Date","parseInt","date","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","time","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","language","substr","defaultLang","i18n","lng","fallbackLng","resStore","I18next","useLocalStorage","localStorageExpirationTime","otr","window","addEventListener","onStorage","lastActivity","loginTimeout","document","on","logoutElement","length","logout","this","xmpp","off","one","jidToBid","gui","checkMaster","onMaster","loginForm","form","el_exists","jid","pass","displayRosterMinimized","setUserItem","roster","noConnection","formFound","call","events","submit","submits","each","index","val","push","handler","settings","prepareLogin","onlogin","triggered","login","username","password","loadSettings","showWaitAlert","t","resource","domain","match","preJid","split","onSlave","restoreRoster","restoreWindows","trigger","setItem","startKeepAlive","enable","createDSA","_onMaster","create","noti","notification","hasSupport","hasPermission","prepareRequest","updateAvatar","setTimeout","ink","setInterval","keepAlive","timeout","keepBusyAlive","clearTimeout","clearInterval","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","buddies","add","empty","windows","minimize","hide","show","setText","text","submitLoginForm","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","apply","arguments","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","emotions","queryActions","message","params","win","open","body","remove","showRemoveDialog","subscribe","showContactDialog","name","vcard","showVcard","append","template","resize","updateWindowListSB","scrollWindowListBy","ev","originalEvent","wheelDelta","tooltip","reg","join","windowTemplate","buddyTemplate","delay","content","attr","update","ri","we","ue","spot","removeClass","addClass","status","msgstate","trust","sub","info","avatar","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","conn","stanza","vCard","img","type","width","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","complete","is","slideToggle","toggleClass","mouseleave","mouseenter","showLoginBox","dialog","prop","showAuthFail","showFingerprints","showVerification","OTR","MSGSTATE_ENCRYPTED","change","slideDown","objects","updateUserItem","close","postMessage","div","sec","quest","keyup","sendSmpReq","showApproveDialog","from","noClose","stopPropagation","resFriendReq","getUsers","list","uid","displayname","option","appendTo","alias","getDomainFromJid","addBuddy","removeBuddy","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","hasOwnProperty","screen","height","j","res","identities","cap","client","identity","getCapabilitiesByJid","category","printProp","depth","item","children","tagName","before","failedToLoad","loadVcard","photo","img_el","showSettings","overwrite","id","checked","saveSettinsPermanent","effect","color","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","saveBuddy","removeUserItem","changePresence","pres","external","sendPres","updatePresence","muteSound","unmuteSound","unreadMsg","readMsg","hasClass","detectUriScheme","container","action","element","href","indexOf","pairs","substring","decodeURIComponent","detectEmail","trim","s","prev","seed","hue","abs","saturation","lightness","background-color","font-weight","text-align","line-height","font-size","toUpperCase","ready","rosterAppend","hideOffline","mute","toggle","slimScroll","distance","opacity","notice","load","bud","insert","rename","expandClick","dblclick","scrollTo","li","listElements","thisStatus","reorder","detach","purge","removeUserElement","_close","input","replaceWith","keypress","which","_rename","newname","iq","$iq","c","xmlns","sendIQ","duration","wl","roster_width","innerWidth","roster_right","parseFloat","state","animate","link","o","opt","onComplete","preventDefault","closeButton","onClosed","onCleanup","overlayClose","escKey","colorbox","outerWidth","innerHeight","outerHeight","toggleTransfer","clear","getSelection","resizable","handles","minHeight","minWidth","event","ui","size","position","top","inArray","unread","ins","restoreChat","highlight","left","parents","_show","scrollDown","_hide","chat","scrollHeight","direction","encrypted","forwarded","stamp","sender","html_msg","MSGSTATE_FINISHED","post","saveMessage","sendMessage","_postMessage","url","source","protocol","p1","esc","msgDiv","msgTsDiv","received","title","avatarDiv","prependTo","pop","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","root","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","authenticationDialog","fingerprintsDialog","chatWindow","windowList","rosterBuddy","loginBox","contactDialog","approveDialog","removeDialog","waitAlert","alert","authFailDialog","confirmDialog","pleaseAccept","aboutDialog","joinChat","muc","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","server","initMenu","onPresence","onPresenceError","addHandler","onGroupchatMessage","onErrorMessage","roomNames","disco","items","discovered","mucFeature","MUC","mucIdentity","showJoinChat","error_handler","condition","room","roomIndex","splice","rooms","listRooms","r","rjid","rnode","rname","count","nickname","discoReceived","roomName","subject","table","feature","exists","tr","keydown","leave","own","onExited","destroy","handler_cb","error_cb","MUC_OWNER","tree","roomdata","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","slimscroll","member","insertMember","affiliation","presence","xdata","getResourceFromJid","unescapeNode","codes","code","bl","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","role","onStatus",110,170,201,"createInstantRoom",301,"postReason",307,321,322,332,"actor","reason","memberdata","m","isNaN","onAddRoster","_num","saved","description","nid","now","notify","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","cancel","permission","checkPermission","func","Audio","play","pause","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","priority","online","away","xa","dnd","onConnected","onAuthFail","numberOfMsg","muteNotification","carbons","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","backup","_sendMessage","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","STATUS_END_OTR","STATUS_SMP_HANDLE","sm","abort","onSmpQuestion","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","cb","endOtr","savekey","packPublic","ake","otr_version","parse","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","localStorage","removeItem","prefix","variable","Number","removeElement","isArray","grep","re","newValue","oldValue","n","posts","transferReq","approve","unshift","incomingCall","allowMediaAccess","videoWindow","webrtc","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","browser","jingle","media_constraints","mandatory","MozDontOfferDataChannel","PRANSWER","AUTOACCEPT","ice_config","MULTIPARTY","pc_constraints","proxy","onMessage","onMediaReady","onMediaFailure","onCallIncoming","onCallTerminated","onCallRinging","onRemoteStreamAdded","onRemoteStreamRemoved","onIceConnectionStateChanged","noStunCandidates","sid","addFeature","caps","onCaps","getTurnCrendentials","turnCredentialsPath","ttl","ajax","async","success","iceConfig","iceServers","credential","dataType","getCapableRes","available","hasFeatureByJid","onAddRosterItem","videoIcon","startCall","updateIcon","capableRes","targetRes","setStatus","txt","margin-left","display","stop","stream","showVideoWindow","getAudioTracks","label","getVideoTracks","hangUp","sess","sessions","peerjid","sendRinging","mediaready.jingle","peerconnection","addStream","sendAnswer","accept","mediafailure.jingle","sendTerminate","terminate","reqUserMedia","isVideoDevice","isAudioDevice","remoteDevices","video","attachMediaStream","sigState","signalingState","iceCon","iceConnectionState","iceGatheringState","localSDP","localDescription","sdp","remoteSDP","remoteDescription","local_fp","SDPUtil","parse_fingerprint","find_line","remote_fp","ip_regex","remote_ip","local_ip","regex","um","finish.mediaready.jsxc","initiate","MediaStreamTrack","getSources","sourceInfo","availableDevices","map","kind","filter","getUserMediaWithConstraints","snapshot","canvas","ctx","getContext","drawImage","toDataURL","target","muted","volume","rv","lv","draggable","containment","w_dialog","w_remote","scale","new_h","new_w","vc","toggleMulti","elem","not","chatarea","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","setupRTC","connected","rid","attached","disconnected","onRidChange","onConnfail","addNamespace","Connection","stropheGetUniqueId","getUniqueId","suffix","_uniqueId","xmlInput","xmlOutput","callback","Object","getOwnPropertyNames","Status","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","node","attach","_addSysHandler","querySelector","ver","getAttribute","_jidNodeIndex","_jidVerIndex","CAPS","connect","numOtr","keys","disReady","flush","disconnect","nomJid","_proto","connectionReady","resume","onRosterChanged","onReceived","conditionalEnable","_knownCapabilities","_requestCapabilities","onRoster","addIdentity","DISCO_INFO","RECEIPTS","$pres","generateCapsAttrs","up","presState","send","location","temp","notices","noticeKey","ptype","xVCard","maxVal","carbon","mid","request","$msg","receiveMsg","subscription","receivedId","sendMsg","isBar","xmlMsg","enabled","result","jidVerIndex","knownCapabilities","disable","refresh","jQuery"],"mappings":";;;;;;;;;;;;;AAeA,GAAIA,MAAO,KAAMC,IAAM,KAAMC,kBAAoB,MAEhD,SAASC,GACP,YAOHH,OAEGI,QAAS,QAGTC,QAAQ,EAGRC,iBAAiB,EAGjBC,GAAI,KAGJC,OAAQ,KAGRC,eAAgB,KAGhBC,oBAAqB,IAGrBC,UAAW,KAGXC,SAAS,EAGTC,kBAAkB,EAGlBC,kBAAkB,EAGlBC,sBAAsB,EAGtBC,qBAAqB,EAGrBC,MAMAC,kBAAmB,KAGnBC,MAAO,KAGPC,IAAK,KAGLC,OACGC,qBAAsB,UACtBC,qBAAsB,UACtBC,oBAAqB,SACrBC,QAAU,UAAW,MAAO,KAAM,OAAQ,OAAQ,UAClDC,QACGC,IAAK,sBACLC,KAAM,oBACNC,OAAQ,aAEXC,OACGC,IAAK,GAAIC,QAAO,qCAAsC,MACtDC,IAAK,GAAID,QAAO,8PAEnBE,IACGC,QAAS,qBACTC,QAAS,uBAWfC,iBAAkB,SAASC,UACxB,GAAIC,SAAU,GAAIC,MAAKC,SAASH,WAC5BI,MAAQ,IAAMH,QAAQI,WAAWC,MAAM,IACvCC,OAAS,KAAON,QAAQO,WAAa,IAAIF,MAAM,IAC/CG,KAAOR,QAAQS,cACfC,OAAS,IAAMV,QAAQW,YAAYN,MAAM,IACzCO,SAAW,IAAMZ,QAAQa,cAAcR,MAAM,IAC7CS,QAAU,GAAIb,MAAQc,KAAOL,MAAQ,IAAME,OAM/C,OAHAE,SAAQE,SAAS,EAAG,EAAG,EAAG,GAC1BhB,QAAQgB,SAAS,EAAG,EAAG,EAAG,GAEtBF,QAAQG,YAAcjB,QAAQiB,UACxBd,KAAO,IAAMG,MAAQ,IAAME,KAAO,IAAMO,KAE3CA,MAWVG,MAAO,SAASC,IAAKC,KAAMC,OAKxB,GAJIA,QACDF,IAAM,IAAME,MAAQ,KAAOF,KAG1BC,KAAM,CACH3D,KAAK6D,QAAQC,QAAQ,YAAa,GACnCC,QAAQC,IAAIN,IAAKC,KAIpB,IAAIM,EACJ,KAEGA,EAAI9D,EAAE,UAAU+D,QAAQ/D,EAAEwD,MAAMQ,SAASC,OAC1C,MAAOC,KACN,IACGJ,EAAIK,KAAKC,UAAUZ,MACpB,MAAOa,MACNP,EAAI,kBAIVjE,KAAKgE,IAAMhE,KAAKgE,IAAMN,IAAM,KAAOO,EAAI,SAEvCF,SAAQC,IAAIN,KACZ1D,KAAKgE,IAAMhE,KAAKgE,IAAMN,IAAM,MAWlCe,KAAM,SAASf,IAAKC,MACjB3D,KAAKyD,MAAMC,IAAKC,KAAM,SAUzBe,MAAO,SAAShB,IAAKC,MAClB3D,KAAKyD,MAAMC,IAAKC,KAAM,UAIzBK,IAAK,GAQLW,KAAM,SAASC,SAERA,SAEDzE,EAAE0E,QAAO,EAAM7E,KAAK4E,QAASA,SAShC5E,KAAK4E,QAAQE,IAAM,SAASC,KACzB,GAAIC,OAAQhF,KAAK6D,QAAQoB,YAAY,cAErC,OAAOD,OAAMD,MAAQ/E,KAAK4E,QAAQG,MASrC/E,KAAK4E,QAAQM,IAAM,SAASH,IAAKI,OAC9BnF,KAAK6D,QAAQuB,WAAW,UAAWL,IAAKI,OAAO,IAGlDnF,KAAKkB,kBAAoBlB,KAAK6D,QAAQC,QAAQ,qBACf,OAA3B9D,KAAKkB,oBACNlB,KAAKkB,kBAAoB,EAI5B,IAAImE,KAoBJ,IAlBGA,KADkC,OAAjCrF,KAAK6D,QAAQC,QAAQ,QACf9D,KAAK6D,QAAQC,QAAQ,QACpB9D,KAAK4E,QAAQU,UAAYC,UAAUC,SACpCD,UAAUC,SAASC,OAAO,EAAG,GAE7BzF,KAAK4E,QAAQc,YAIvBvF,EAAEwF,KAAKhB,MACJiB,IAAKP,KACLQ,YAAa,KACbC,SAAUC,QAEVC,iBAAiB,EACjBC,2BAA4B,QAID,mBAAnB,cAER,WADAjG,MAAKyD,MAAM,wCAIVzD,MAAK6D,QAAQC,QAAQ,YAAa,IACnC9D,KAAK4E,QAAQsB,IAAIzC,OAAQ,GAI5B0C,OAAOC,iBAAiB,UAAWpG,KAAK6D,QAAQwC,WAAW,EAE3D,IAAIC,cAAetG,KAAK6D,QAAQC,QAAQ,iBAAmB,CAoB3D,KAlBI,GAAKtB,OAAQgB,UAAY8C,aAAetG,KAAK4E,QAAQ2B,eACtDvG,KAAKY,SAAU,GAGlBT,EAAEqG,UAAUC,GAAG,uBAAwB,WAEnC,GAAmC,OAA/BzG,KAAK4E,QAAQ8B,eAA0B1G,KAAK4E,QAAQ8B,cAAcC,OAAS,EAAG,CAC/E,GAAIC,QAAS,WAGV,MAFA5G,MAAK4E,QAAQ8B,cAAgBvG,EAAE0G,MAC/B7G,KAAKgB,qBAAsB,EACpBhB,KAAK8G,KAAKF,SAGpB5G,MAAK4E,QAAQ8B,cAAcK,IAAI,QAAS,KAAMH,QAAQI,IAAI,QAASJ,WAKrE5G,KAAK6D,QAAQC,QAAQ,QAAW9D,KAAK6D,QAAQC,QAAQ,QAAW9D,KAAKY,QAwDvEZ,KAAKoB,IAAMpB,KAAKiH,SAASjH,KAAK6D,QAAQC,QAAQ,QAE9C9D,KAAKkH,IAAIvC,OAEsC,mBAAnC3E,MAAK6D,QAAQC,QAAQ,UAA8B9D,KAAKY,QAGjEZ,KAAKmH,cAFLnH,KAAKoH,eA7DwE,CAGhF,IAAKpH,KAAK4E,QAAQyC,UAAUC,QAAUtH,KAAKuH,UAAUvH,KAAK4E,QAAQyC,UAAUC,OAAStH,KAAKuH,UAAUvH,KAAK4E,QAAQyC,UAAUG,MAAQxH,KAAKuH,UAAUvH,KAAK4E,QAAQyC,UAAUI,OAStK,YAPIzH,KAAK4E,QAAQ8C,2BAEd1H,KAAK6D,QAAQ8D,YAAY,SAAU,UACnC3H,KAAKkH,IAAIU,OAAOjD,OAChB3E,KAAKkH,IAAIU,OAAOC,gBAMgB,mBAA3B7H,MAAK4E,QAAQkD,WACrB9H,KAAK4E,QAAQkD,UAAUC,MAI1B,IAAIT,MAAOtH,KAAK4E,QAAQyC,UAAUC,KAAOnH,EAAEH,KAAK4E,QAAQyC,UAAUC,MAC9DU,OAASV,KAAK3D,KAAK,YACpBsE,WAECC,UAIJ/H,GAAEgI,KAAKH,OAAOC,OAAQ,SAASG,MAAOC,KACnCH,QAAQI,KAAKD,IAAIE,WAGpBjB,KAAK3D,KAAK,UAAWuE,SACrBZ,KAAKP,IAAI,UAGTO,KAAKW,OAAO,WAET,GAAIO,UAAWxI,KAAKyI,cAEpB,OAAID,aAAa,GAAoC,SAA1BA,SAAS1B,KAAK4B,SAAsBF,SAAS1B,KAAK4B,WAAY,GASlF,GARJ1I,KAAK4E,QAAQyC,UAAUsB,WAAY,EAEnC3I,KAAK8G,KAAK8B,SAGH,OA4BnBH,aAAc,WACX,GAAII,UAAW1I,EAAEH,KAAK4E,QAAQyC,UAAUG,KAAKa,MACzCS,SAAW3I,EAAEH,KAAK4E,QAAQyC,UAAUI,MAAMY,KAE9C,IAAyC,kBAA9BrI,MAAK4E,QAAQmE,aAErB,WADA/I,MAAK0E,MAAM,yCAId1E,MAAKkH,IAAI8B,cAAc7I,EAAE8I,EAAE,cAE3B,IAAIT,UAAWxI,KAAK4E,QAAQmE,aAAahB,KAAKlB,KAAMgC,SAAUC,SAE9D,IAAIN,YAAa,GAAsB,OAAbA,UAAyC,mBAAbA,UAGnD,MAFAxI,MAAKyE,KAAK,yBAEH,CAG4B,iBAA3B+D,UAAS1B,KAAK+B,WACtBA,SAAWL,SAAS1B,KAAK+B,SAG5B,IAEIrB,KAFA0B,SAAYV,SAAS1B,KAAa,SAAI,IAAM0B,SAAS1B,KAAKoC,SAAW,GACrEC,OAASX,SAAS1B,KAAKqC,MA0B3B,OAtBG3B,KADCqB,SAASO,MAAM,UACTP,SAASO,MAAM,WAAcP,SAAWA,SAAWK,SAEpDL,SAAW,IAAMM,OAASD,SAGU,kBAAlClJ,MAAK4E,QAAQyC,UAAUgC,SAC/B7B,IAAMxH,KAAK4E,QAAQyC,UAAUgC,OAAO7B,MAGvCxH,KAAKoB,IAAMpB,KAAKiH,SAASO,KAEzBgB,SAAS1B,KAAK+B,SAAWrB,IAAI8B,MAAM,KAAK,GACxCd,SAAS1B,KAAKqC,OAAS3B,IAAI8B,MAAM,KAAK,GAAGA,MAAM,KAAK,GACpDd,SAAS1B,KAAKoC,SAAW1B,IAAI8B,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAM,GAE5DnJ,EAAEgI,KAAKK,SAAU,SAASzD,IAAKsD,KAC5BrI,KAAK4E,QAAQM,IAAIH,IAAKsD,OAGzBrI,KAAK4E,QAAQkC,KAAKU,IAAMA,IACxBxH,KAAK4E,QAAQkC,KAAKgC,SAAWA,SAEtBN,UAMVe,QAAS,WACNvJ,KAAKyD,MAAM,mBAEXzD,KAAKM,iBAAkB,EAEvBN,KAAKwJ,gBACLxJ,KAAKyJ,iBACLzJ,KAAKa,kBAAmB,EAExBV,EAAEqG,UAAUkD,QAAQ,0BAMvBtC,SAAU,WACPpH,KAAKyD,MAAM,gBAEXzD,KAAKK,QAAS,EAGdL,KAAK6D,QAAQ8F,QAAQ,QAAS,GAC9B3J,KAAK6D,QAAQ8F,QAAQ,aAAc,GAC9B3J,KAAK6D,QAAQoB,YAAY,eAC3BjF,KAAK6D,QAAQ8D,YAAY,iBAI5B3H,KAAK4J,iBAED5J,KAAK4E,QAAQE,IAAI,OAAO+E,OAEzB7J,KAAKkG,IAAI4D,YAET9J,KAAK+J,aAOXA,UAAW,WAoBR,GAjBI/J,KAAKM,iBACNH,EAAEgI,KAAKnI,KAAK6D,QAAQoB,YAAY,cAAe,SAASmD,MAAOC,KAC5DrI,KAAKkG,IAAI8D,OAAO3B,OAItBrI,KAAKM,iBAAkB,EAEnBN,KAAKY,UAAYZ,KAAKa,mBACvBb,KAAKwJ,gBACLxJ,KAAKyJ,iBACLzJ,KAAKa,kBAAmB,EAExBV,EAAEqG,UAAUkD,QAAQ,0BAInB1J,KAAKY,QAAS,CACf,GAAIqJ,MAAOjK,KAAK6D,QAAQoB,YAAY,eACpCgF,MAAwB,gBAATA,MAAoBA,KAAO,EACtCjK,KAAK4E,QAAQsF,cAAgBD,KAAO,GAAKjK,KAAKkK,aAAaC,aACxDnK,KAAKkK,aAAaE,gBACnBpK,KAAKkK,aAAavF,OAElB3E,KAAKkK,aAAaG,iBAIrBrK,KAAK4E,QAAQsF,cAAe,EAIlC/J,EAAEqG,UAAUC,GAAG,uBAAwB,WACpCzG,KAAKkH,IAAIoD,aAAanK,EAAE,gBAAiBH,KAAKiH,SAASjH,KAAK6D,QAAQC,QAAQ,QAAS,SAGxF9D,KAAK8G,KAAK8B,SAMbzB,YAAa,WACVnH,KAAKyD,MAAM,gBAEXzD,KAAKO,GAAK4F,OAAOoE,WAAWvK,KAAKoH,SAAU,KAC3CpH,KAAK6D,QAAQ2G,IAAI,UAMpBZ,eAAgB,WACb5J,KAAKW,UAAYwF,OAAOsE,YAAYzK,KAAK0K,UAAW1K,KAAK4E,QAAQ+F,QAAU,MAM9ED,UAAW,WACR1K,KAAK6D,QAAQ2G,IAAI,SAEbxK,KAAKM,iBACNN,KAAK6D,QAAQ8F,QAAQ,gBAAgB,GAAKnH,OAAQgB,YAQxDoH,cAAe,WACR5K,KAAKQ,QACN2F,OAAO0E,aAAa7K,KAAKQ,QAGxBR,KAAKW,WACNwF,OAAO2E,cAAc9K,KAAKW,WAG7BX,KAAK6D,QAAQ2G,IAAI,cACjBxK,KAAKQ,OAAS2F,OAAOoE,WAAWvK,KAAK4J,eAAgB5J,KAAK4E,QAAQmG,YAAc,MASnFC,OAAQ,SAASC,KACd,MAAOC,MAAKC,MAAMD,KAAKF,SAAWC,MASrC1D,UAAW,SAAS6D,UACjB,MAAOjL,GAAEiL,UAAUzE,OAAS,GAS/B0E,SAAU,SAAS7D,KAChBxH,KAAKyE,KAAK,+BAEV,IAAI6G,KAAMC,QAAQC,kBAAkBhE,KAAKiE,QAAQ,IAAK,KAAKA,QAAQ,MAAO,KAAKC,aAE/E,OAAOJ,MAUVrE,SAAU,SAASO,KAChB,MAAO+D,SAAQC,kBAAkBhE,KAAKkE,eAMzClC,cAAe,WACZ,GAAImC,SAAU3L,KAAK6D,QAAQoB,YAAY,YAEvC,OAAK0G,UAA8B,IAAnBA,QAAQhF,QAQxBxG,EAAEgI,KAAKwD,QAAS,SAASvD,MAAOjD,OAC7BnF,KAAKkH,IAAIU,OAAOgE,IAAIzG,aAGvBhF,GAAEqG,UAAUkD,QAAQ,yBAXjB1J,KAAKyD,MAAM,2BAEXzD,MAAKkH,IAAIU,OAAOiE,UAetBpC,eAAgB,WACb,GAAIqC,SAAU9L,KAAK6D,QAAQoB,YAAY,aAEvB,QAAZ6G,SAIJ3L,EAAEgI,KAAK2D,QAAS,SAAS1D,MAAOhH,KAC7B,GAAI+E,QAASnG,KAAK6D,QAAQoB,YAAY,SAAU7D,IAEhD,OAAK+E,SAKLnG,KAAKkH,IAAIf,OAAOxB,KAAKvD,KAEhB+E,OAAO4F,SAGT/L,KAAKkH,IAAIf,OAAO6F,KAAK5K,KAFrBpB,KAAKkH,IAAIf,OAAO8F,KAAK7K,SAKxBpB,MAAKkH,IAAIf,OAAO+F,QAAQ9K,IAAK+E,OAAOgG,QAZjCnM,KAAKyD,MAAM,yCAA2CrC,MAC/C,MAkBhBgL,gBAAiB,WACd,GAAI9E,MAAOtH,KAAK4E,QAAQyC,UAAUC,KAAKP,IAAI,UAGvCmB,QAAUZ,KAAK3D,KAAK,cACxBxD,GAAEgI,KAAKD,QAAS,SAASE,MAAOC,KAC7Bf,KAAKW,OAAOI,OAGXf,KAAK+E,KAAK,WAAW1F,OAAS,EAC/BW,KAAK+E,KAAK,WAAWC,QAErBhF,KAAKW,UAOXsE,WAAY,SAASJ,MAElB,MADAA,MAAOA,KAAKV,QAAQ,SAAU,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KACnEU,KAAKV,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAU1Ee,WAAY,SAASL,MAClB,MAAOhM,GAAE,UAAUiE,KAAK+H,MAAMA,QAUjCM,aAAc,SAASC,KACpB,GAAIC,IAAKzB,KAAKF,SAAS4B,SAAS,IAAInH,OAAO,EAAG,IAC1CoH,KAAOhG,IAUX,OARA1G,GAAEgI,KAAKuE,IAAK,SAAS3H,IAAKsD,KACvBlI,EAAEqG,UAAUQ,IAAIjC,IAAM,IAAM4H,GAAI,WAC7BxM,EAAEqG,UAAUO,IAAI,IAAM4F,IAEtBtE,IAAIyE,MAAMD,KAAME,eAIfJ,IAQVK,SAAU,WACP,GAAIC,SAAS,CAmBb,OAjB+B,mBAApBzG,UAASyG,OACjBA,OAASzG,SAASyG,OACuB,mBAA1BzG,UAAS0G,aACxBD,OAASzG,SAAS0G,aACoB,mBAAvB1G,UAAS2G,UACxBF,OAASzG,SAAS2G,UACmB,mBAAtB3G,UAAS4G,WACxBH,OAASzG,SAAS4G,UAIjBH,QAAUjN,KAAKK,OAChBL,KAAK6D,QAAQ2G,IAAI,SAAU,GAClByC,QAAWjN,KAAKK,QACzBL,KAAK6D,QAAQ2G,IAAI,UAGbyC,QAQVI,SAAU,WACP,GAAIC,QAAQ,CAYZ,OAViC,kBAAtB9G,UAAS6G,WACjBC,MAAQ9G,SAAS6G,aAGfC,OAAStN,KAAKK,OAChBL,KAAK6D,QAAQ2G,IAAI,QAAS,GAClB8C,QAAUtN,KAAKK,QACvBL,KAAK6D,QAAQ2G,IAAI,SAGb8C,OAWVC,KAAM,SAASC,OAAQC,UACpB,GAEIC,GAFAC,OAASH,OAAOlE,MAAM,KACtBsE,GAAK5N,KAAK2N,OAAO,GAErB,KAAKD,EAAI,EAAGA,EAAIC,OAAOhH,OAAQ+G,IAC5BE,GAAKA,GAAGD,OAAOD,GAGlB,OAAkB,kBAAPE,IACDA,GAAGd,MAAM,KAAMW,UADzB,QAYHI,QAAS,SAASC,KACf,GAAcJ,GAAVK,KAAO,CAEX,IAAmB,IAAfD,IAAInH,OACL,MAAOoH,KAGV,KAAKL,EAAI,EAAGA,EAAII,IAAInH,OAAQ+G,IACzBK,MAAUA,MAAQ,GAAKA,KAAQD,IAAIE,WAAWN,GAC9CK,MAAQ,CAGX,OAAOA,QASb/N,KAAKkH,KAEF+G,WAAc,WAAY,UAAa,0BAA2B,UAAa,SAAU,UAAa,SAAU,SAAY,SAAU,QAAW,SAAU,SAAY,SAAU,gBAAmB,MAAO,cAAiB,aAAc,SAAY,aAAc,gBAAmB,yBAA4B,WAAc,MAAO,UAAa,SAAU,QAAW,QAAS,aAAgB,OAAQ,eAAkB,SAAU,SAAY,UAAW,UAAa,mBAAoB,YAAe,wBAAyB,SAAY,UAAW,UAAa,SAAU,SAAY,QAAS,UAO1kBC,cAEGC,QAAS,SAAS3G,IAAK4G,QACpB,GAAIC,KAAMrO,KAAKkH,IAAIf,OAAOmI,KAAKtO,KAAKiH,SAASO,KAEzC4G,SAAiC,gBAAhBA,QAAOG,MACzBF,IAAIhC,KAAK,mBAAmBhE,IAAI+F,OAAOG,OAK7CC,OAAQ,SAAShH,KACdxH,KAAKkH,IAAIuH,iBAAiBzO,KAAKiH,SAASO,OAI3CkH,UAAW,SAASlH,IAAK4G,QACtBpO,KAAKkH,IAAIyH,kBAAkBnH,KAEvB4G,QACDjO,EAAE,eAAekI,IAAI+F,OAAOQ,OAKlCC,MAAO,SAASrH,KACbxH,KAAKkH,IAAI4H,UAAUtH,OASzB7C,KAAM,WAECxE,EAAE,oBAAoBwG,OAAS,IAInCxG,EAAE,QAAQ4O,OAAO5O,EAAEH,KAAKkH,IAAI8H,SAASlK,IAAI,gBAEzC3E,EAAEgG,QAAQ8I,OAAOjP,KAAKkH,IAAIgI,oBAC1B/O,EAAE,oBAAoB8O,OAAOjP,KAAKkH,IAAIgI,oBAEtC/O,EAAE,uCAAuCmM,MAAM,WAC5CtM,KAAKkH,IAAIiI,mBAAmB,QAE/BhP,EAAE,wCAAwCmM,MAAM,WAC7CtM,KAAKkH,IAAIiI,mBAAmB,OAE/BhP,EAAE,oBAAoBsG,GAAG,QAAS,SAAS2I,IACpCjP,EAAE,oBAAoBwD,KAAK,WAC5B3D,KAAKkH,IAAIiI,mBAAoBC,GAAGC,cAAcC,WAAa,EAAK,IAAM,QAI5EtP,KAAKkH,IAAIqI,QAAQ,oBAEZvP,KAAKuH,UAAU,iBACjBvH,KAAKkH,IAAIU,OAAOjD,OAInBxE,EAAEgI,KAAKnI,KAAKkH,IAAI+G,SAAU,SAASP,EAAGrF,KAEnC,GAAImH,KAAMnH,IAAI,GAAGoD,QAAQ,+CAAgD,OACzE+D,KAAM,IAAMA,IAAIlG,MAAM,KAAKmG,KAAK,KAAO,IACvCzP,KAAKkH,IAAI+G,SAASP,GAAG,GAAK,GAAI1L,QAAOwN,IAAK,OAI7CxP,KAAKkH,IAAIwI,eAAiBvP,EAAEH,KAAKkH,IAAI8H,SAASlK,IAAI,eAClD9E,KAAKkH,IAAIyI,cAAgBxP,EAAEH,KAAKkH,IAAI8H,SAASlK,IAAI,kBASpDyK,QAAS,SAASnE,UACfjL,EAAEiL,UAAUmE,SACTtD,MACG2D,MAAO,KAEVC,QAAS,WACN,MAAO1P,GAAE0G,MAAMiJ,KAAK,SAASrE,QAAQ,MAAO,cAUrDsE,OAAQ,SAAS3O,KACd,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,KAAKuC,KAEF,WADA3D,MAAKyD,MAAM,eAAiBrC,IAI/B,IAAI4O,IAAKhQ,KAAKkH,IAAIU,OAAO9D,QAAQ1C,KAC7B6O,GAAKjQ,KAAKkH,IAAIf,OAAOrB,IAAI1D,KACzB8O,GAAKF,GAAGpE,IAAIqE,IACZE,KAAOhQ,EAAE,wBAA0BiB,IAAM,KAY7C,QATA4O,GAAGrM,KAAKA,MAGRuM,GAAGtE,IAAIuE,MAAMC,YAAY,QAAUpQ,KAAKqB,MAAMI,OAAOgO,KAAK,WAAWY,SAAS,QAAUrQ,KAAKqB,MAAMI,OAAOkC,KAAK2M,SAG/GJ,GAAG7D,KAAK,oBAAoBT,IAAIuE,MAAMhE,KAAKxI,KAAKiL,MAAMkB,KAAK,QAAS3P,EAAE8I,EAAE,MAAQ,IAAMjJ,KAAKqB,MAAMI,OAAOkC,KAAK2M,SAGrG3M,KAAK4M,UACV,IAAK,GACFN,GAAG5D,KAAK,kBAAkB+D,YAAY,qBAAqBN,KAAK,QAAS3P,EAAE8I,EAAE,mCAC7EgH,GAAG5D,KAAK,qCAAqCgE,SAAS,iBACtDJ,GAAG5D,KAAK,iCAAiCF,KAAKhM,EAAE8I,EAAE,iBAClD,MACH,KAAK,GACFgH,GAAG5D,KAAK,kBAAkBgE,SAAS,YAAYP,KAAK,QAAS3P,EAAE8I,EAAE,iCACjEgH,GAAG5D,KAAK,qCAAqC+D,YAAY,iBACzDH,GAAG5D,KAAK,iCAAiCF,KAAKhM,EAAE8I,EAAE,iBAClD,MACH,KAAK,GACFgH,GAAG5D,KAAK,qCAAqCgE,SAAS,iBACtDJ,GAAG5D,KAAK,kBAAkB+D,YAAY,YAAYC,SAAS,YAAYP,KAAK,QAAS3P,EAAE8I,EAAE,6CACzFgH,GAAG5D,KAAK,iCAAiCF,KAAKhM,EAAE8I,EAAE,kBAKpDtF,KAAK6M,MACNP,GAAG5D,KAAK,kBAAkBgE,SAAS,cAAcP,KAAK,QAAS3P,EAAE8I,EAAE,8BAEnEgH,GAAG5D,KAAK,kBAAkB+D,YAAY,cAIrCzM,KAAK8M,KAAoB,SAAb9M,KAAK8M,IAClBP,GAAGG,SAAS,eAEZH,GAAGE,YAAY,cAGlB,IAAIM,MAAO,MAAQnF,QAAQC,kBAAkB7H,KAAK6D,KAAO,QACzDkJ,OAAQvQ,EAAE8I,EAAE,gBAAkB,KAAO9I,EAAE8I,EAAEtF,KAAK8M,KAAO,KACrDC,MAAQvQ,EAAE8I,EAAE,UAAY,KAAO9I,EAAE8I,EAAEjJ,KAAKqB,MAAMI,OAAOkC,KAAK2M,SAE1DN,GAAG3D,KAAK,cAAcyD,KAAK,QAASY,MAEpC1Q,KAAKkH,IAAIoD,aAAa0F,GAAGpE,IAAIqE,GAAG5D,KAAK,cAAe1I,KAAK6D,IAAK7D,KAAKgN,SAWtErG,aAAc,SAASsG,GAAIpJ,IAAKqJ,KAE7B,GAAIC,WAAY,SAASC,KACtB,MAAY,KAARA,KAAqB,MAARA,IAC4B,kBAA/B/Q,MAAK4E,QAAQoM,kBACpBhR,MAAK4E,QAAQoM,cAAcjJ,KAAK6I,GAAIpJ,SAGxCxH,MAAKkH,IAAI+J,kBAAkBL,GAAGvE,KAAK,gBAAiB7E,MAIvDoJ,GAAGvE,KAAK,gBAAgB6E,WAAW,aAEnCN,IAAGvE,KAAK,gBAAgB8E,KACrBC,mBAAoB,OAASL,IAAM,IACnCM,cAAe,WAIrB,IAAmB,mBAARR,KAER,WADAC,WAAU,EAIb,IAAIQ,WAAYtR,KAAK6D,QAAQoB,YAAY,SAAU4L,IAEjC,QAAdS,UACDR,UAAUQ,WAEVtR,KAAK8G,KAAKyK,KAAK1C,MAAM/J,IAAI,SAAS0M,QAC/BxR,KAAKyD,MAAM,QAAS+N,OAEpB,IACIT,KADAU,MAAQtR,EAAEqR,QAAQnF,KAAK,gBAG3B,IAAqB,IAAjBoF,MAAM9K,OACP3G,KAAKyD,MAAM,qBACXsN,IAAM,QACF,IAAIU,MAAMpF,KAAK,UAAU1F,OAAS,EACtCoK,IAAMU,MAAMpF,KAAK,UAAUF,WACvB,CACJ,GAAIuF,KAAMD,MAAMpF,KAAK,UAAUF,OAC3BwF,KAAOF,MAAMpF,KAAK,QAAQF,MAC9B4E,KAAM,QAAUY,KAAO,WAAaD,IAIvCX,IAAMA,IAAItF,QAAQ,eAAgB,IAElCzL,KAAK6D,QAAQ8D,YAAY,SAAUkJ,IAAKE,KACxCD,UAAUC,MACVxF,QAAQC,kBAAkBhE,KAAM,SAAS9D,KACzC1D,KAAKyE,KAAK,wBAAyBf,KAEnC1D,KAAK6D,QAAQ8D,YAAY,SAAUkJ,IAAK,GACxCC,UAAU,MAUnB5B,mBAAoB,WAEb/O,EAAE,uBAAuByR,QAAUzR,EAAE,oBAAoByR,QAC1DzR,EAAE,4BAA4BiQ,YAAY,kBAE1CjQ,EAAE,4BAA4BkQ,SAAS,iBACvClQ,EAAE,uBAAuBgR,IAAI,QAAS,SAU5ChC,mBAAoB,SAAS0C,QAE1B,GAAIC,aAAc3R,EAAE,uBAAuByR,QACvCA,MAAQzR,EAAE,oBAAoByR,QAC9BhB,GAAKzQ,EAAE,uBACP4R,MAAQtP,SAASmO,GAAGO,IAAI,UAAYU,OACpCG,QAAU7R,EAAE,sBAAsByR,OAEpBA,OAAdE,cAIAC,MAAQ,IACTA,MAAQ,GAGCH,MAAQE,YAAcE,QAA9BD,QACDA,MAAQH,MAAQE,YAAcE,SAGjCpB,GAAGO,IAAI,QAASY,MAAQ,QAS3BE,UAAW,SAAS7Q,KAGjB,MAFApB,MAAKyE,KAAK,qCAEHzE,KAAKkH,IAAIf,OAAOrB,IAAI1D,MAQ9B8Q,WAAY,WACT,GAAIrF,MAAO1M,EAAE0G,KAEbgG,MAAKsF,kBAEL,IAAIC,IAAKvF,KAAKR,KAAK,MACfgG,QAAU,IAEdA,SAAU,WACPD,GAAGC,SACAC,SAAU,WACPzF,KAAKuD,YAAY,kBAIvBjQ,EAAE,QAAQ4G,IAAI,QAAS,KAAMsL,UAGhClS,EAAE0G,MAAMyF,MAAM,WAgBX,MAdI8F,IAAGG,GAAG,YAEPpS,EAAE,QAAQmM,QACVnM,EAAE,QAAQ6G,IAAI,QAASqL,UAEvBlS,EAAE,QAAQ4G,IAAI,QAAS,KAAMsL,SAGhCD,GAAGI,cAEHrM,OAAO0E,aAAauH,GAAGzO,KAAK,UAE5BkJ,KAAK4F,YAAY,gBAEV,IACPC,WAAW,WACXN,GAAGzO,KAAK,QAASwC,OAAOoE,WAAW8H,QAAS,QAC5CM,WAAW,WACXxM,OAAO0E,aAAauH,GAAGzO,KAAK,aAOlCiP,aAAc,WAEXzS,EAAEqG,UAAUC,GAAG,uBAAwB,WACpCtG,EAAE,kBAAkBmN,UAGvBtN,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,aAE3C3E,EAAE,gBAAgBkM,KAAK,QAAQpE,OAAO,WAEnC9H,EAAE0G,MAAMwF,KAAK,sBAAsByG,KAAK,YAAY,GAEpD9S,KAAK4E,QAAQyC,UAAUC,KAAOnH,EAAE0G,MAChC7G,KAAK4E,QAAQyC,UAAUG,IAAMrH,EAAE0G,MAAMwF,KAAK,kBAC1CrM,KAAK4E,QAAQyC,UAAUI,KAAOtH,EAAE0G,MAAMwF,KAAK,iBAE3C,IAAI7D,UAAWxI,KAAKyI,cAWpB,OATAzI,MAAKc,kBAAmB,EACxBd,KAAK4E,QAAQyC,UAAUsB,WAAY,EAE/BH,YAAa,EACdxI,KAAKkH,IAAI6L,eAET/S,KAAK8G,KAAK8B,SAGN,KASboK,iBAAkB,SAAS5R,KACxBpB,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,qBAAsB1D,OAQpE6R,iBAAkB,SAAS7R,KAGxB,MAAIjB,GAAE,gBAAgBwG,OAAS,MAC5B4D,YAAW,WACRvK,KAAKkH,IAAI+L,iBAAiB7R,MAC1B,KAKFpB,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKmP,WAAa2C,IAAI7R,MAAM8R,uBAC/DnT,MAAKyE,KAAK,6BAIbzE,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,uBAAwB1D,MAInEjB,EAAE,4BAA4B6L,OAC9B7L,EAAE,uBAAuBiT,OAAO,WAC7BjT,EAAE,4BAA4B6L,OAC9B7L,EAAE,yBAA2BA,EAAE0G,MAAMiM,KAAK,iBAAmB,KAAKO,WAC/Df,SAAU,WACPtS,KAAKkH,IAAI2L,OAAO5D,cAMzB9O,EAAE,uCAAuCmM,MAAM,WACxCtM,KAAKK,SACNL,KAAKkG,IAAIoN,QAAQlS,KAAKoP,OAAQ,GAGjCxQ,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,SAAS,GAEnDpB,KAAKkH,IAAI2L,OAAOW,QAEhBxT,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,SAAS,GACnDpB,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,iCAC5CjJ,KAAKkH,IAAI6I,OAAO3O,OAInBjB,EAAE,uCAAuCmM,MAAM,WAC5C,GAAIoH,KAAMvT,EAAE,4BACRwT,IAAMD,IAAIrH,KAAK,iBAAiBhE,MAChCuL,MAAQF,IAAIrH,KAAK,eAAehE,KAEpC,OAAY,KAARsL,KAAwB,KAAVC,UAEfF,KAAIrH,KAAK,mBAAmBgE,SAAS,gBAAgBwD,MAAM,WACpD1T,EAAE0G,MAAMwB,MAAMe,MAAM,OACrBjJ,EAAE0G,MAAMuJ,YAAY,mBAMzBpQ,KAAKK,OACNL,KAAKkG,IAAI4N,WAAW1S,IAAKuS,IAAKC,OAE9B5T,KAAK6D,QAAQ8D,YAAY,OAASvG,KAC/BuS,IAAKA,IACLC,MAAOA,QAIb5T,KAAKkH,IAAI2L,OAAOW,YAEhBxT,MAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,qCAI/C9I,GAAE,sCAAsCmM,MAAM,WAC3C,GAAIoH,KAAMvT,EAAE,4BACRwT,IAAMD,IAAIrH,KAAK,gBAAgBhE,KAEnC,OAAY,KAARsL,QAEDD,KAAIrH,KAAK,gBAAgBgE,SAAS,gBAAgBwD,MAAM,WACjD1T,EAAE0G,MAAMwB,MAAMe,MAAM,OACrBjJ,EAAE0G,MAAMuJ,YAAY,mBAMzBpQ,KAAKK,OACNL,KAAKkG,IAAI4N,WAAW1S,IAAKuS,KAEzB3T,KAAK6D,QAAQ8D,YAAY,OAASvG,KAC/BuS,IAAKA,IACLC,MAAO,OAIb5T,KAAKkH,IAAI2L,OAAOW,YAEhBxT,MAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,mCASlD8K,kBAAmB,SAASC,MACzBhU,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,kBACxCmP,SAAW,IAGd9T,EAAE,gCAAgCgM,KAAKZ,QAAQC,kBAAkBwI,OAEjE7T,EAAE,2BAA2BmM,MAAM,SAAS8C,IACzCA,GAAG8E,kBAEHlU,KAAK8G,KAAKqN,aAAaH,MAAM,GAE7BhU,KAAKkH,IAAI2L,OAAOW,UAGnBrT,EAAE,8BAA8BmM,MAAM,SAAS8C,IAC5CA,GAAG8E,iBAEH,IAAIvQ,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAAS+M,MAE3DhU,MAAK8G,KAAKqN,aAAaH,MAAM,GAGxBrQ,MAAqB,SAAbA,KAAK8M,KACftQ,EAAEqG,UAAUQ,IAAI,oBAAqB,WAClChH,KAAKkH,IAAIyH,kBAAkBqF,QAIjChU,KAAKkH,IAAI2L,OAAOW,WAStB7E,kBAAmB,SAAS9F,UACzB7I,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,kBAIvC+D,UACD1I,EAAE,kBAAkBkI,IAAIQ,UAG3B1I,EAAE,kBAAkB0T,MAAM,WACvB,GAAqC,kBAA1B7T,MAAK4E,QAAQwP,SAAyB,CAC9C,GAAI/L,KAAMlI,EAAE0G,MAAMwB,KAClBlI,GAAE,kBAAkB0L,QAER,KAARxD,KACArI,KAAK4E,QAAQwP,SAASrM,KAAKlB,KAAMwB,IAAK,SAASgM,MAC3ClU,EAAEgI,KAAKkM,SAAY,SAASC,IAAKC,aAC7B,GAAIC,QAASrU,EAAE,WACfqU,QAAO1E,KAAK,gBAAiBwE,KAC7BE,OAAO1E,KAAK,aAAcyE,aAE1BC,OAAO1E,KAAK,QAASwE,KAAKG,SAAS,kBAE/BH,MAAQC,aACRC,OAAOrQ,QAAQ2L,KAAK,QAASyE,aAAaE,SAAS,yBAQzEtU,EAAE,kBAAkBsG,GAAG,QAAS,WAC7B,GAAI4B,KAAMlI,EAAE0G,MAAMwB,MACdmM,OAASrU,EAAE,kBAAkBkM,KAAK,yBAA2BhE,IAAM,0BAA4BA,IAAM,KAErGmM,QAAO7N,OAAS,IACjBxG,EAAE,kBAAkBkI,IAAImM,OAAO1E,KAAK,kBACpC3P,EAAE,eAAekI,IAAImM,OAAO1E,KAAK,kBAIvC3P,EAAE,qBAAqB8H,OAAO,WAC3B,GAAIY,UAAW1I,EAAE,kBAAkBkI,MAC/BqM,MAAQvU,EAAE,eAAekI,KAO7B,OALKQ,UAASO,MAAM,YACjBP,UAAY,IAAM0C,QAAQoJ,iBAAiB3U,KAAK6D,QAAQC,QAAQ,SAI9D+E,UAAaA,SAASO,MAAMpJ,KAAKqB,MAAMS,MAAMC,MASlD/B,KAAK8G,KAAK8N,SAAS/L,SAAU6L,OAE7B1U,KAAKkH,IAAI2L,OAAOW,SAET,IAXJrT,EAAE,kBAAkBkQ,SAAS,gBAAgBwD,MAAM,WAC5C1T,EAAE0G,MAAMwB,MAAMe,MAAMpJ,KAAKqB,MAAMS,MAAMC,MACtC5B,EAAE0G,MAAMuJ,YAAY,mBAGnB,MAgBhB3B,iBAAkB,SAASrN,KAExBpB,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,eAAgB1D,KAE3D,IAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CjB,GAAE,0BAA0BmM,MAAM,SAAS8C,IACxCA,GAAG8E,kBAEClU,KAAKK,OACNL,KAAK8G,KAAK+N,YAAYlR,KAAK6D,KAG3BxH,KAAK6D,QAAQ8D,YAAY,cAAevG,KACrCoG,IAAK7D,KAAK6D,MAIhBxH,KAAKkH,IAAI2L,OAAOW,WAUtBxK,cAAe,SAAStF,KACrB1D,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,YAAa,KAAMpB,MAC3DuQ,SAAW,KAUjBa,UAAW,SAASpR,KACjB1D,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,QAAS,KAAMpB,OAQ7DqP,aAAc,WACX/S,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,mBAEvC9E,KAAK4E,QAAQyC,UAAUsB,aAAc,GACtCxI,EAAE,6BAA6B6L,OAGlC7L,EAAE,0BAA0BmM,MAAM,WAC/BtM,KAAKkH,IAAI2L,OAAOW,UAGnBrT,EAAE,6BAA6BmM,MAAM,WAClCtM,KAAKoM,qBAYX2I,kBAAmB,SAASrR,IAAKsR,QAASC,SACvCjV,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,gBAAiB,KAAMpB,MAC/DuQ,SAAS,IAGRe,SACD7U,EAAE,0BAA0BmM,MAAM0I,SAGjCC,SACD9U,EAAE,6BAA6BmM,MAAM2I,UAS3CC,gBAAiB,WACdlV,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,gBAE3C3E,EAAE,+BAA+BmM,MAAM,WACpCtM,KAAKkH,IAAIiO,kBASfA,aAAc,WACX,GAAIC,UAAW,2BAEf,IAAI7P,UAAW,CACZ,GAAIR,IACJ,KAAKA,MAAOQ,WACLA,UAAU8P,eAAetQ,MAAkC,gBAAnBQ,WAAUR,OACnDqQ,UAAY,MAAQrQ,IAAM,SAAWQ,UAAUR,KAAO,UAK3DoB,OAAOmP,SACRF,UAAY,kBAAoBjP,OAAOmP,OAAOC,OAAS,SACvDH,UAAY,iBAAmBjP,OAAOmP,OAAO1D,MAAQ,UAGxDwD,UAAY,wBAA0BpV,KAAKI,QAAU,SAErDJ,KAAKkH,IAAI2L,OAAOvE,KAAK,yBAA2B8G,SAAW,oBAAsBpV,KAAKuM,WAAWvM,KAAKgE,KAAO,iBAShH8K,UAAW,SAAStH,KACjB,GAAIpG,KAAMpB,KAAKiH,SAASO,IACxBxH,MAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,QAAS1D,KAEpD,IAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,IAAIuC,KAAM,CAEP,GAAI+J,GAAG8H,EAAGC,IAAKC,WAA6BC,IAAKC,OAAtBC,SAAW,IACtC,KAAKnI,EAAI,EAAGA,EAAI/J,KAAK8R,IAAI9O,OAAQ+G,IAAK,CAWnC,IAVA+H,IAAM9R,KAAK8R,IAAI/H,GAEfgI,cACAC,IAAM3V,KAAK8G,KAAKgP,qBAAqB1U,IAAM,IAAMqU,KAErC,OAARE,KAAmC,OAAnBA,IAAID,aACrBA,WAAaC,IAAID,YAGpBE,OAAS,GACJJ,EAAI,EAAGA,EAAIE,WAAW/O,OAAQ6O,IAChCK,SAAWH,WAAWF,GACI,WAAtBK,SAASE,WACK,KAAXH,SACDA,QAAU,OAGbA,QAAUC,SAASjH,KAAO,KAAOiH,SAASlE,KAAO,IAIvD,IAAIrB,QAAStQ,KAAK6D,QAAQoB,YAAY,MAAO7D,KAAKqU,IAElDtV,GAAE,8BAA8B4O,OAAO,gCAAkC5O,EAAE8I,EAAE,YAAc,cAAgBwM,IAAM,SACjHtV,EAAE,8BAA8B4O,OAAO,eAAiB5O,EAAE8I,EAAE,UAAY,cAAgB2M,OAAS,SACjGzV,EAAE,8BAA8B4O,OAAO,eAAiB5O,EAAE8I,EAAE,UAAY,cAAgB9I,EAAE8I,EAAEjJ,KAAKqB,MAAMI,OAAO6O,SAAW,UAI/H,GAAI0F,WAAY,SAASpF,GAAIqF,OAC1B,GAAIpG,SAAU,EAoCd,OAlCAe,IAAGzI,KAAK,WACL,GAAI+N,MAAO/V,EAAE0G,MACTsP,SAAWhW,EAAE0G,MAAMsP,UAEvBtG,UAAW,MAEX,IAAIiD,MAAO3S,EAAE8I,EAAEiN,KAAK,GAAGE,QAEV,OAATtD,OACDjD,SAAW,WAAaiD,KAAO,eAGV,UAApBoD,KAAK,GAAGE,UAEDD,SAASxP,OAAS,GAC1BkJ,SAAW,OACXA,SAAWmG,UAAUG,SAAUF,MAAQ,GACvCpG,SAAW,SACa,KAAhBqG,KAAK/J,SACb0D,SAAW7P,KAAKuM,WAAW2J,KAAK/J,UAGnC0D,SAAW,QAEG,IAAVoG,OAAe9V,EAAE,8BAA8BwG,OAAS,IACrDxG,EAAE,gDAAgDwG,OAAS,EAC5DxG,EAAE,gDAAgDkW,OAAOxG,SAEzD1P,EAAE,8BAA8B4O,OAAOc,SAE1CA,QAAU,MAIZoG,MAAQ,EACFpG,QADV,QAKCyG,aAAe,WAChB,GAA+C,IAA3CnW,EAAE,8BAA8BwG,OAApC,CAIAxG,EAAE,kBAAkBqO,QAEpB,IAAIqB,SAAU,KACdA,UAAW1P,EAAE8I,EAAE,mDACf4G,SAAW,OAEX1P,EAAE,gBAAgB4O,OAAOc,UAG5B7P,MAAK8G,KAAKyP,UAAUnV,IAAK,SAASoQ,QAE/B,GAA+C,IAA3CrR,EAAE,8BAA8BwG,OAApC,CAIAxG,EAAE,kBAAkBqO,QAEpB,IAAIgI,OAAQrW,EAAEqR,QAAQnF,KAAK,gBAE3B,IAAImK,MAAM7P,OAAS,EAAG,CACnB,GAAI+K,KAAM8E,MAAMnK,KAAK,UAAUF,OAC3BwF,KAAO6E,MAAMnK,KAAK,QAAQF,OAC1B4E,IAAM,QAAUY,KAAO,WAAaD,GAEpC8E,OAAMnK,KAAK,UAAU1F,OAAS,IAC/BoK,IAAMyF,MAAMnK,KAAK,UAAUF,QAI9B4E,IAAMA,IAAItF,QAAQ,eAAgB,GAElC,IAAIgL,QAAStW,EAAE,0CACfsW,QAAO3G,KAAK,MAAOiB,KAEnB5Q,EAAE,mBAAmBkW,OAAOI,QAG/B,MAAuC,KAAnCtW,EAAEqR,QAAQnF,KAAK,SAAS1F,QAAwD,IAAvCxG,EAAEqR,QAAQnF,KAAK,aAAa1F,QAAiC,IAAjB6P,MAAM7P,WAC5F2P,oBAIHN,WAAU7V,EAAEqR,QAAQnF,KAAK,aAAc,KAEvCiK,eAGNI,aAAc,WACX1W,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,cAEA,UAAvC9E,KAAK4E,QAAQE,IAAI,QAAQ6R,WAAyB3W,KAAK4E,QAAQE,IAAI,QAAQ6R,aAAc,IAC1FxW,EAAE,sBAAsB6L,OAG3B7L,EAAE,qBAAqBgI,KAAK,WACzB,GAAI0E,MAAO1M,EAAE0G,KAEbgG,MAAKR,KAAK,yBAAyBlE,KAAK,WACrC,GAAIyO,IAAK/P,KAAK+P,GAAGtN,MAAM,KACnBwJ,KAAO8D,GAAG,GACV7R,IAAM6R,GAAG,GACTjF,KAAO9K,KAAK8K,KAEZhO,KAAO3D,KAAK4E,QAAQE,IAAIgO,KAExBnP,OAA6B,mBAAdA,MAAKoB,OACR,aAAT4M,KACiB,UAAdhO,KAAKoB,MAAoBpB,KAAKoB,QAAS,IACxC8B,KAAKgQ,QAAU,WAGlB1W,EAAE0G,MAAMwB,IAAI1E,KAAKoB,WAM7B5E,EAAE,qBAAqB8H,OAAO,WAE3B,GAAI4E,MAAO1M,EAAE0G,MACTlD,OAEJkJ,MAAKR,KAAK,yBAAyBlE,KAAK,WACrC,GAGIE,KAHAuO,GAAK/P,KAAK+P,GAAGtN,MAAM,KACnBwJ,KAAO8D,GAAG,GACV7R,IAAM6R,GAAG,GAETjF,KAAO9K,KAAK8K,IAGbtJ,KADU,aAATsJ,KACK9K,KAAKgQ,QAEL1W,EAAE0G,MAAMwB,MAGZ1E,KAAKmP,QACPnP,KAAKmP,UAGRnP,KAAKmP,MAAM/N,KAAOsD,MAGrBlI,EAAEgI,KAAKxE,KAAM,SAASoB,IAAKsD,KACxBrI,KAAK4E,QAAQM,IAAIH,IAAKsD,MAGzB,IAAIhE,KAAMrE,KAAK4E,QAAQkS,qBAAqB/O,KAAKlB,KAAMlD,KAYvD,OAV0C,gBAA/BkJ,MAAKiD,KAAK,kBAClB9P,KAAKuN,KAAKV,KAAKiD,KAAK,kBAAoBzL,MAG3CkG,WAAW,WACRsC,KAAKR,KAAK,wBAAwB0K,OAAO,aACtCC,MAAO,IAAQ,QAAU,OACzB,MACH,MAEI,KASbC,wBAAyB,WAEtBjX,KAAKyM,cACFyK,yBAA0B,WACvBlX,KAAKkH,IAAI2L,OAAOW,QAChBxT,KAAKkK,aAAavF,OAClB3E,KAAK6D,QAAQ8D,YAAY,eAAgB,IAE5CwP,2BAA4B,WACzBnX,KAAKkH,IAAI2L,OAAOW,QAChBxT,KAAK4E,QAAQsF,cAAe,EAC5BlK,KAAK6D,QAAQ8D,YAAY,eAAgB,MAI/C3H,KAAKkH,IAAI6N,kBAAkB5U,EAAE8I,EAAE,yBAA0B,WACtDjJ,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,iBACxCmP,SAAS,IAGZjU,KAAKkK,aAAakN,qBAClB,WACAjX,EAAEqG,UAAUkD,QAAQ,+BAI1B2N,kBAAmB,SAASjW,KACzB,GAAIkW,kBAAmBnX,EAAE8I,EAAE,iDAAmD,KAAO7H,IAAM,MAAQjB,EAAE8I,EAAE,8BACvGjJ,MAAKkH,IAAI6N,kBAAkBuC,iBAAkB,WAE1CtX,KAAKkH,IAAI2L,OAAOW,QAEhBxT,KAAK6D,QAAQ0T,UAAUnW,KACpBoG,IAAKpG,IACLwN,KAAMxN,IACNkP,OAAQ,EACRG,IAAK,OACLgF,SAGHzV,KAAKkH,IAAIf,OAAOmI,KAAKlN,MAErB,WAEApB,KAAK6D,QAAQ2T,eAAe,OAAQpW,QAW1CqW,eAAgB,SAASC,KAAMC,UAExBA,YAAa,GACd3X,KAAK6D,QAAQ8D,YAAY,WAAY+P,MAGpC1X,KAAKK,QACNL,KAAK8G,KAAK8Q,WAGbzX,EAAE,yBAAyBgM,KAAKhM,EAAE,6BAA+BuX,MAAMvL,QAEvEnM,KAAKkH,IAAI2Q,eAAe,MAAOH,OAUlCG,eAAgB,SAASzW,IAAKsW,MAEf,QAARtW,MACY,QAATsW,MACDvX,EAAE,qCAAqCkQ,SAAS,iBAChDrQ,KAAKkK,aAAa4N,WAAU,KAE5B3X,EAAE,qCAAqCiQ,YAAY,iBAE9CpQ,KAAK4E,QAAQE,IAAI,qBACnB9E,KAAKkK,aAAa6N,aAAY,KAKvC5X,EAAE,4BAA8BiB,IAAM,MAAMgP,YAAY,QAAUpQ,KAAKqB,MAAMI,OAAOgO,KAAK,WAAWY,SAAS,QAAUqH,OAS1HM,UAAW,SAAS5W,KACjB,GAAIiN,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAE9BpB,MAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAKwK,IAAIyC,KAAKgC,SAAS,kBAC/CrQ,KAAK6D,QAAQ0P,eAAe,SAAUnS,IAAK,UAAU,IASxD6W,QAAS,SAAS7W,KACf,GAAIiN,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAE1BiN,KAAI6J,SAAS,oBACdlY,KAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAKwK,IAAIyC,KAAK+B,YAAY,kBAClDpQ,KAAK6D,QAAQ0P,eAAe,SAAUnS,IAAK,UAAU,KAU3D+W,gBAAiB,SAASC,WACvBA,UAA0BjY,EAAd,UAAgBiY,UAAe,QAE3CA,UAAU/L,KAAK,oBAAoBlE,KAAK,WAErC,GAGIkQ,QAHAC,QAAUnY,EAAE0G,MACZ0R,KAAOD,QAAQxI,KAAK,QAAQrE,QAAQ,SAAU,IAC9CjE,IAAM+Q,KAAKjP,MAAM,KAAK,GACd8E,SAEZ,IAAImK,KAAKC,QAAQ,KAAO,EACrBH,OAAS,cACL,CACJ,GAAII,OAAQF,KAAKG,UAAUH,KAAKC,QAAQ,KAAO,GAAGlP,MAAM,IACxD+O,QAASI,MAAM,EAEf,IAAI/K,GAAG3I,IAAKI,KACZ,KAAKuI,EAAI,EAAGA,EAAI+K,MAAM9R,OAAQ+G,IAC3B3I,IAAM0T,MAAM/K,GAAGpE,MAAM,KAAK,GAC1BnE,MAASsT,MAAM/K,GAAG8K,QAAQ,KAAO,EAAKC,MAAM/K,GAAGgL,UAAUD,MAAM/K,GAAG8K,QAAQ,KAAO,GAAK,KAEtFpK,OAAOuK,mBAAmB5T,MAAQ4T,mBAAmBxT,OAId,kBAAlCnF,MAAKkH,IAAIgH,aAAamK,UAC9BC,QAAQjI,SAAS,iCAAmCgI,QAEpDC,QAAQvR,IAAI,SAASuF,MAAM,SAAS8C,IAKjC,MAJAA,IAAG8E,kBAEHlU,KAAKkH,IAAIgH,aAAamK,QAAQtQ,KAAK/H,KAAMwH,IAAK4G,SAEvC,QAMnBwK,YAAa,SAASR,WACnBA,UAA0BjY,EAAd,UAAgBiY,UAAe,QAE3CA,UAAU/L,KAAK,sBAAsBlE,KAAK,WACvC,GAAIgI,MAAOhQ,EAAE,kBAAkBkQ,SAAS,aACpCkI,KAAOpY,EAAE0G,MAAMiJ,KAAK,QAAQrE,QAAQ,aAAc,IAAIoN,MAE1D,IAAa,KAATN,MAAeA,OAAShN,QAAQC,kBAAkBxL,KAAK6D,QAAQC,QAAQ,QAAS,CACjF,GAAI1C,KAAMpB,KAAKiH,SAASsR,MACpB1L,KAAO1M,EAAE0G,MACTiS,EAAIjM,KAAKkM,MAERD,GAAEZ,SAAS,eACbY,EAAI3I,KAAKhM,QAAQ2L,KAAK,WAAY1O,KAElCyL,KAAKwJ,OAAOyC,IAGfA,EAAE/R,IAAI,SAEF/G,KAAK6D,QAAQoB,YAAY,QAAS7D,MACnCpB,KAAKkH,IAAI6I,OAAO3O,KAChB0X,EAAExM,MAAM,WAGL,MAFAtM,MAAKkH,IAAIf,OAAOmI,KAAKlN,MAEd,KAGV0X,EAAExM,MAAM,WAGL,MAFAtM,MAAKkH,IAAIyH,kBAAkB4J,OAEpB,QAOtBtH,kBAAmB,SAASL,GAAIoI,KAAM7M,MACnCA,KAAOA,MAAQ6M,IAEf,IAAIpU,SAAU5E,KAAK4E,QAAQE,IAAI,yBAC3BiJ,KAAO/N,KAAK6N,QAAQmL,MAEpBC,IAAM/N,KAAKgO,IAAInL,MAAQ,IACvBoL,WAAavU,QAAQuU,YAAc,GACnCC,UAAYxU,QAAQwU,WAAa,EAErCxI,IAAGO,KACDkI,mBAAoB,OAASJ,IAAM,KAAOE,WAAa,MAAQC,UAAY,KAC3EpC,MAAS,OACTsC,cAAe,OACfC,aAAc,SACdC,cAAe5I,GAAG2E,SAAW,KAC7BkE,YAA2B,GAAd7I,GAAG2E,SAAiB,OAGf,gBAATpJ,OAAqBA,KAAKxF,OAAS,GAC5CiK,GAAGzE,KAAKA,KAAK,GAAGuN,iBAUxB1Z,KAAKkH,IAAIU,QAGN+R,OAAO,EAQPhV,KAAM,WACHxE,EAAEH,KAAK4E,QAAQgV,aAAe,UAAU7K,OAAO5O,EAAEH,KAAKkH,IAAI8H,SAASlK,IAAI,YAEnE9E,KAAK4E,QAAQE,IAAI,iBAClB3E,EAAE,gCAAgCgM,KAAKhM,EAAE8I,EAAE,iBAC3C9I,EAAE,mBAAmBkQ,SAAS,qBAGjClQ,EAAE,6BAA6BmM,MAAM,WAClCtM,KAAKkH,IAAIwP,iBAGZvW,EAAE,gCAAgCmM,MAAM,WACrC,GAAIuN,cAAe7Z,KAAK4E,QAAQE,IAAI,cAEhC+U,aACD1Z,EAAE,mBAAmBkQ,SAAS,oBAE9BlQ,EAAE,mBAAmBiQ,YAAY,oBAGpCjQ,EAAE0G,MAAMsF,KAAmBhM,EAAE8I,EAAhB4Q,YAAkB,eAAsB,iBAErD7Z,KAAK4E,QAAQM,IAAI,cAAe2U,eAG/B7Z,KAAK4E,QAAQE,IAAI,qBAClB9E,KAAKkK,aAAa4N,YAGrB3X,EAAE,qCAAqCmM,MAAM,WAE1C,GAA6C,QAAzCtM,KAAK6D,QAAQoB,YAAY,YAA7B,CAKA,GAAI6U,OAAQ9Z,KAAK4E,QAAQE,IAAI,mBAEzBgV,MACD9Z,KAAKkK,aAAa4N,YAElB9X,KAAKkK,aAAa6N,iBAIxB5X,EAAE,+BAA+BmM,MAAM,WACpCtM,KAAKkH,IAAIyH,sBAGZxO,EAAE,iCAAiCmM,MAAM,WACtCnG,OAAOmI,KAAK,kCAAmC,gBAGlDnO,EAAE,4BAA4BmM,MAAM,WACjCtM,KAAKkH,IAAIgO,oBAGZ/U,EAAE,sBAAsBmM,MAAM,WAC3BtM,KAAKkH,IAAIU,OAAOmS,WAGnB5Z,EAAE,4BAA4BmM,MAAM,WACjC,GAAIO,MAAO1M,EAAE0G,MACT6Q,KAAO7K,KAAKlJ,KAAK,OAER,aAAT+T,KACD1X,KAAK8G,KAAKF,QAAO,GAEjB5G,KAAKkH,IAAIuQ,eAAeC,QAI9BvX,EAAE,mBAAmB6Z,YAClBC,SAAU,MACV1E,OAASpV,EAAE,gBAAgBoV,SAAW,GAAM,KAC5C3D,MAAOzR,EAAE,mBAAmByR,QAAU,KACtCoF,MAAO,OACPkD,QAAS,QAGZ/Z,EAAE,qCAAqCgI,KAAK,WACzCnI,KAAKkH,IAAIgL,WAAWnK,KAAK5H,EAAE0G,SAGa,WAAvC7G,KAAK6D,QAAQoB,YAAY,YAC1B9E,EAAE,gBAAgBgR,IAAI,QAAS,UAC/BhR,EAAE,yBAAyBgR,IAAI,eAAgB,QAGlD;GAAIuG,MAAO1X,KAAK6D,QAAQoB,YAAY,aAAe,QACnD9E,GAAE,yBAAyBgM,KAAKhM,EAAE,6BAA+BuX,MAAMvL,QACvEnM,KAAKkH,IAAI2Q,eAAe,MAAOH,MAE/B1X,KAAKkH,IAAIqI,QAAQ,gBAEjBvP,KAAKma,OAAOC,OAEZpa,KAAKkH,IAAIU,OAAO+R,OAAQ,EACxBxZ,EAAEqG,UAAUkD,QAAQ,sBAQvBkC,IAAK,SAASxK,KACX,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCiZ,IAAMra,KAAKkH,IAAIyI,cAAcxL,QAAQ2L,KAAK,WAAY1O,KAAK0O,KAAK,YAAanM,KAAKgO,MAAQ,OAE9F3R,MAAKkH,IAAIU,OAAO0S,OAAOlZ,IAAKiZ,KAE5BA,IAAI/N,MAAM,WACPtM,KAAKkH,IAAIf,OAAOmI,KAAKlN,OAGxBiZ,IAAIhO,KAAK,kBAAkBC,MAAM,WAC9BtM,KAAKkH,IAAIf,OAAOmI,KAAKlN,OAGxBiZ,IAAIhO,KAAK,gBAAgBC,MAAM,WAE5B,MADAtM,MAAKkH,IAAIU,OAAO2S,OAAOnZ,MAChB,IAGViZ,IAAIhO,KAAK,gBAAgBC,MAAM,WAE5B,MADAtM,MAAKkH,IAAIuH,iBAAiBrN,MACnB,GAGV,IAAIoZ,aAAc,WAMf,MALAH,KAAI3Q,QAAQ,cAEZ2Q,IAAI5H,YAAY,eAEhBzS,KAAKkH,IAAIoD,aAAa+P,IAAK1W,KAAK6D,IAAK7D,KAAKgN,SACnC,EAGV0J,KAAIhO,KAAK,iBAAiBC,MAAMkO,aAChCH,IAAII,SAASD,aAEbH,IAAIhO,KAAK,mBAAmBC,MAAM,WAE/B,MADAtM,MAAKkH,IAAI4H,UAAUnL,KAAK6D,MACjB,IAGVxH,KAAKkH,IAAI6I,OAAO3O,KAGhBjB,EAAE,mBAAmB6Z,YAClBU,SAAU,QAGbva,EAAEqG,UAAUkD,QAAQ,mBAAqBtI,IAAKuC,KAAM0W,OAGvDvW,QAAS,SAAS1C,KACf,MAAOjB,GAAE,kCAAoCiB,IAAM,OAWtDkZ,OAAQ,SAASlZ,IAAKuZ,IAEnB,GAAIhX,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCwZ,aAAeza,EAAE,wBACjBma,QAAS,EAGThK,OAAuB,SAAb3M,KAAK8M,IAAkB9M,KAAK2M,OAAS,EAEnDsK,cAAazS,KAAK,WAEf,GAAI0S,YAAsC,SAAxB1a,EAAE0G,MAAMlD,KAAK,OAAqBxD,EAAE0G,MAAMlD,KAAK,UAAY,EAE7E,OAAKxD,GAAE0G,MAAMlD,KAAK,QAAQ+H,cAAgB/H,KAAKiL,KAAKlD,eAAiBmP,aAAevK,QAAwBA,OAAbuK,YAE5F1a,EAAE0G,MAAMwP,OAAOsE,IACfL,QAAS,GAEF,GALV,SASEA,QACFK,GAAGlG,SAAS,oBAUlBqG,QAAS,SAAS1Z,KACfpB,KAAKkH,IAAIU,OAAO0S,OAAOlZ,IAAKpB,KAAKkH,IAAIU,OAAO4G,OAAOpN,OAStDoN,OAAQ,SAASpN,KACd,MAAOpB,MAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAK2Z,UAQvCC,MAAO,SAAS5Z,KACTpB,KAAKK,SACNL,KAAK6D,QAAQ2T,eAAe,QAASpW,KACrCpB,KAAK6D,QAAQ2T,eAAe,MAAOpW,KACnCpB,KAAK6D,QAAQ2T,eAAe,eAAiBpW,KAC7CpB,KAAK6D,QAAQ2T,eAAe,OAAQpW,KACpCpB,KAAK6D,QAAQ2T,eAAe,SAAUpW,KACtCpB,KAAK6D,QAAQoX,kBAAkB,YAAa7Z,KAC5CpB,KAAK6D,QAAQoX,kBAAkB,aAAc7Z,MAGhDpB,KAAKkH,IAAIf,OAAO+U,OAAO9Z,KACvBpB,KAAKkH,IAAIU,OAAO4G,OAAOpN,MAS1BmZ,OAAQ,SAASnZ,KACd,GAAIwN,MAAO5O,KAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAKiL,KAAK,cACzCzH,QAAU5E,KAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAKiL,KAAK,gCAC5C8O,MAAQhb,EAAE,mCAEdyE,SAAQoH,OACR4C,KAAOA,KAAKwM,YAAYD,OAExBA,MAAM9S,IAAIuG,KAAKzC,QACfgP,MAAME,SAAS,SAASjM,IACJ,KAAbA,GAAGkM,QAIP1W,QAAQqH,OACRkP,MAAMC,YAAYxM,MAClB5O,KAAKkH,IAAIU,OAAO2T,QAAQna,IAAKjB,EAAE0G,MAAMwB,OAErClI,EAAE,QAAQ4G,IAAI,YAIjBoU,MAAM7O,MAAM,WACT,OAAO,IAGVnM,EAAE,QAAQ6G,IAAI,QAAS,WACpBpC,QAAQqH,OACRkP,MAAMC,YAAYxM,MAClB5O,KAAKkH,IAAIU,OAAO2T,QAAQna,IAAK+Z,MAAM9S,UAWzCkT,QAAS,SAASna,IAAKoa,SACpB,GAAIxb,KAAKK,OAAQ,CACd,GAAI4D,GAAIjE,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE1C,IAAe,SAAX6C,EAAE0N,KAAiB,CACnB,GAAI8J,IAAKC,KACN/J,KAAM,QACNgK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFnU,IAAK+D,QAAQC,kBAAkBvH,EAAEuD,KACjCoH,KAAM4M,SAETxb,MAAK8G,KAAKyK,KAAKsK,OAAOJ,KAI7Bzb,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,OAAQoa,SAClDxb,KAAKkH,IAAI6I,OAAO3O,MAQnB2Y,OAAQ,SAAS9V,GACd,GAAI6X,UAAW7X,GAAK,IAEhB2D,OAASzH,EAAE,gBACX4b,GAAK5b,EAAE,oBAEP6b,aAAepU,OAAOqU,aACtBC,aAAeC,WAAWhc,EAAE,gBAAgBgR,IAAI,UAChDiL,MAAwB,EAAfF,aAAoB,QAAU,QAE3Clc,MAAK6D,QAAQ8D,YAAY,SAAUyU,OAEnCxU,OAAOyU,SACJtK,MAAwC,IAA/BiK,aAAeE,cAAsB,MAC9CJ,UACHC,GAAGM,SACAtK,MAAQ,GAAKmK,aAAgB,MAC7BJ,UAEH3b,EAAEqG,UAAUkD,QAAQ,sBAAwB0S,MAAON,YAMtDjU,aAAc,WACX1H,EAAE,gBAAgBkQ,SAAS,qBAE3BlQ,EAAE,mBAAmB0L,QAErB1L,EAAE,gBAAgB4O,OAAO5O,EAAE,MAAQA,EAAE8I,EAAE,iBAAmB,QAAQ8F,OAAO,OAAS5O,EAAE8I,EAAE,WAAa,QAAQqD,MAAM,WAC9GtM,KAAKkH,IAAI0L,mBASf/G,MAAO,WACJ,GAAIM,MAAOhM,EAAE,MAAQA,EAAE8I,EAAE,8BAAgC,QACrDqT,KAAOnc,EAAE,MAAQA,EAAE8I,EAAE,aAAe,OAExCqT,MAAKhQ,MAAM,WACRtM,KAAKkH,IAAIyH,sBAEZxC,KAAK4C,OAAOuN,MACZnQ,KAAK4C,OAAO,KAEZ5O,EAAE,gBAAgB+D,QAAQiI,QAShCnM,KAAKkH,IAAI2L,QAUNvE,KAAM,SAAS3K,KAAM4Y,GAElB,GAAIC,KAAMD,MAGN3X,UAwCJ,OAvCAA,UACG6X,WAAY,WACTtc,EAAE,4BAA4BmM,MAAM,SAAS8C,IAC1CA,GAAGsN,iBAEH1c,KAAKkH,IAAI2L,OAAOW,UAIf5O,QAAQ+X,eAAgB,GACzBxc,EAAE,cAAc6L,OAGnBhM,KAAKkH,IAAI2L,OAAO5D,SAEhB9O,EAAEqG,UAAUkD,QAAQ,yBAEvBkT,SAAU,WACPzc,EAAEqG,UAAUkD,QAAQ,sBAEvBmT,UAAW,WACR1c,EAAEqG,UAAUkD,QAAQ,wBAEvBwQ,QAAS,IAGRsC,IAAIvI,UACLrP,QAAQkY,cAAe,EACvBlY,QAAQmY,QAAS,EACjBnY,QAAQ+X,aAAc,QACfH,KAAIvI,SAGd9T,EAAE0E,OAAOD,QAAS4X,KAElB5X,QAAQR,KAAO,yBAA2BT,KAAO,SAEjDxD,EAAE6c,SAASpY,SAEJzE,EAAE,iBAMZqT,MAAO,WACJxT,KAAKyD,MAAM,gBACXtD,EAAE6c,SAASxJ,SAQdvE,OAAQ,SAASrK,SACdA,QAAUzE,EAAE0E,QACVoX,WAAY9b,EAAE,gBAAgB8c,aAC9BC,YAAa/c,EAAE,gBAAgBgd,eAC9BvY,aAEHzE,EAAE,sBAAsBgR,IAAI,WAAY,UAExChR,EAAE6c,SAAS/N,OAAOrK,WASxB5E,KAAKkH,IAAIf,QAQNxB,KAAM,SAASvD,KACZ,GAAIpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,OAAS,EACnC,MAAO3G,MAAKkH,IAAIf,OAAOrB,IAAI1D,IAG9B,IAAIiN,KAAMrO,KAAKkH,IAAIwI,eAAevL,QAAQ2L,KAAK,WAAY1O,KAAK4K,OAAOyI,SAAS,yBAAyBxI,KAAK,QAC1GtI,KAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAkG7C,IA/FAiN,IAAI1K,KAAK,MAAOA,KAAK6D,KAIrBxH,KAAKkH,IAAIgL,WAAWnK,KAAKsG,IAAIhC,KAAK,mBAElCgC,IAAIhC,KAAK,sBAAsBC,MAAM,WAClCtM,KAAKkH,IAAI+L,iBAAiB7R,OAG7BiN,IAAIhC,KAAK,sBAAsBC,MAAM,WAClCtM,KAAKkH,IAAI8L,iBAAiB5R,OAG7BiN,IAAIhC,KAAK,kBAAkBC,MAAM,WAC9BtM,KAAKkG,IAAIkX,eAAehc,OAG3BiN,IAAIhC,KAAK,aAAaC,MAAM,WACzBtM,KAAKkH,IAAIf,OAAO4T,OAAO3Y,OAG1BiN,IAAIhC,KAAK,eAAeC,MAAM,WAC3BtM,KAAKkH,IAAIf,OAAOqN,MAAMpS,OAGzBiN,IAAIhC,KAAK,eAAeC,MAAM,WAC3BtM,KAAKkH,IAAIf,OAAOkX,MAAMjc,OAGzBiN,IAAIhC,KAAK,eAAeC,MAAM,WAC3B,OAAO,IAGV+B,IAAIhC,KAAK,mBAAmBwH,MAAM,SAASzE,IACxC,GAAIb,MAAOpO,EAAE0G,MAAMwB,KAEF,MAAb+G,GAAGkM,QACJ/M,KAAO,IAGVvO,KAAK6D,QAAQ0P,eAAe,SAAUnS,IAAK,OAAQmN,MAElC,KAAba,GAAGkM,OACJtb,KAAKkH,IAAIf,OAAOqN,MAAMpS,OAEzBia,SAAS,SAASjM,IACD,KAAbA,GAAGkM,OAAiBnb,EAAE0G,MAAMwB,QAIhCrI,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE0G,MAAMwB,OAEhDlI,EAAE0G,MAAMwB,IAAI,OACZiF,MAAM,WAENtN,KAAKkH,IAAI+Q,QAAQ7W,OACjBuR,WAAW,WACXxS,EAAE,oBAAoBwD,KAAK,UAAU,KACrC+O,WAAW,WACXvS,EAAE,oBAAoBwD,KAAK,UAAU,KAGxC0K,IAAIhC,KAAK,kBAAkBC,MAAM,WAEF,kBAAjBgR,eAAgCA,eAAe1Q,YACvDyB,IAAIhC,KAAK,mBAAmBiB,UAIlCe,IAAIhC,KAAK,kBAAkB2N,YACxBzE,OAAQ,QACR0E,SAAU,QAGb5L,IAAIhC,KAAK,cAAcL,OAEvBqC,IAAIhC,KAAK,cAAc8F,mBAEvB9D,IAAIhC,KAAK,kBAAkBkR,WACxBC,QAAS,WACTC,UAAW,IACXC,SAAU,IACVzO,OAAQ,SAAS0O,MAAOC,IACrBvP,IAAIuD,MAAMgM,GAAGC,KAAKjM,OAClBvD,IAAIhC,KAAK,kBAAkB2N,YACxBzE,OAAQqI,GAAGC,KAAKtI,QAEnB,IAAI1D,QAASxD,IAAIhC,KAAK,kBAAkByR,WAAWC,GACnD1P,KAAIhC,KAAK,mBAAmB8E,IAAI,MAAQyM,GAAGC,KAAKtI,OAAS1D,OAAS,EAAK,MAEvE1R,EAAEqG,UAAUkD,QAAQ,sBAAwB2E,IAAKjN,IAAKwc,GAAGC,UAI3D1d,EAAE6d,QAAQ5c,IAAKpB,KAAK6D,QAAQoB,YAAY,eAAiB,EAAG,CAG7D,GAAI8W,IAAK/b,KAAK6D,QAAQoB,YAAY,aAClC8W,IAAGzT,KAAKlH,KACRpB,KAAK6D,QAAQ8D,YAAY,aAAcoU,IAGvC/b,KAAK6D,QAAQ8D,YAAY,SAAUvG,KAChC2K,UAAU,EACVI,KAAM,GACN8R,QAAQ,QAIPje,MAAK6D,QAAQoB,YAAY,SAAU7D,KAAK6c,QACzCje,KAAKkH,IAAI8Q,UAAU5W,IA+BzB,OA3BAjB,GAAEgI,KAAKnI,KAAKkH,IAAI+G,SAAU,SAASP,EAAGrF,KACnC,GAAI6V,KAAM7V,IAAI,GAAGiB,MAAM,KAAK,GACxBqR,GAAKxa,EAAE,mBAAqB+d,IAAM,iBAAmB7V,IAAI,GAAK,WAClEsS,IAAGrO,MAAM,WACN+B,IAAIhC,KAAK,SAAShE,IAAIgG,IAAIhC,KAAK,SAAShE,MAAQ6V,KAChD7P,IAAIhC,KAAK,SAASiB,UAErBe,IAAIhC,KAAK,sBAAsB0C,OAAO4L,MAGzC3a,KAAKkH,IAAIgL,WAAWnK,KAAKsG,IAAIhC,KAAK,oBAElCrM,KAAKkH,IAAIf,OAAOgY,YAAY/c,KAE5BpB,KAAKkH,IAAI6I,OAAO3O,KAEhBpB,KAAKkH,IAAIgI,qBAGLlP,KAAKK,SAAWL,KAAKkG,IAAIoN,QAAQlS,KAClCpB,KAAKkG,IAAI8D,OAAO5I,KAEhBpB,KAAKkG,IAAI2D,OAAOzI,KAGnBjB,EAAEqG,UAAUkD,QAAQ,oBAAsB2E,MAEnCA,KASVvJ,IAAK,SAAS8R,IACX,MAAOzW,GAAE,gCAAkCH,KAAKiH,SAAS2P,IAAM,OAUlEtI,KAAM,SAASlN,KACZ,GAAIiN,KAAMrO,KAAKkH,IAAIf,OAAOxB,KAAKvD,IAC/BpB,MAAKkH,IAAIf,OAAO8F,KAAK7K,KACrBpB,KAAKkH,IAAIf,OAAOiY,UAAUhd,IAE1B,IAAI4Q,SAAU7R,EAAE,sBAAsByR,QAClCqK,WAAa9b,EAAE,uBAAuByR,QACtCqL,WAAa9c,EAAE,oBAAoByR,QAAUI,OAEjD,IAAIiK,WAAagB,WAAY,CAC1B,GAAIpL,QAASpP,SAAStC,EAAE,uBAAuBgR,IAAI,UAC/CS,MAAQvD,IAAI4O,YAAW,GAEvBlL,MAAQkK,WAAa5N,IAAIyP,WAAWO,KAAOzM,MAAQC,OACnDwM,KAAOpB,YAAchB,WAAa5N,IAAIyP,WAAWO,MAAQxM,MAElD,GAAPwM,MACDre,KAAKkH,IAAIiI,mBAA0B,GAAPkP,MAGnB,EAARtM,OACD/R,KAAKkH,IAAIiI,mBAAmB4C,OAIlC,MAAO1D,MAQVmF,MAAO,SAASpS,KAEb,MAAwC,KAApCpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,WAC1B3G,MAAKyE,KAAK,8CAIbzE,KAAK6D,QAAQoX,kBAAkB,aAAc7Z,KAC7CpB,KAAK6D,QAAQ2T,eAAe,SAAUpW,KAElCpB,KAAK6D,QAAQoB,YAAY,aAAauT,QAAQpX,KAAO,IAGtDpB,KAAK6D,QAAQ2T,eAAe,QAASpW,KACrCpB,KAAK6D,QAAQ2T,eAAe,OAAQpW,UAGvCpB,MAAKkH,IAAIf,OAAO+U,OAAO9Z,OAQ1B8Z,OAAQ,SAAS9Z,KACdpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAK4K,KAAK,OAAQ,WACnC7L,EAAE0G,MAAM2H,SAERxO,KAAKkH,IAAIgI,wBASf6K,OAAQ,SAAS3Y,KAEd,GAAIiN,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAEiB,KAA3CiN,IAAIiQ,QAAQ,oBAAoB3X,SAIhC0H,IAAIhC,KAAK,cAAckG,GAAG,WAC3BvS,KAAKkH,IAAIf,OAAO8F,KAAK7K,KAErBpB,KAAKkH,IAAIf,OAAO6F,KAAK5K,KAGxBpB,KAAKkH,IAAIgI,uBAQZjD,KAAM,SAAS7K,KAEZpB,KAAK6D,QAAQ0P,eAAe,SAAUnS,IAAK,YAAY,GAEvDpB,KAAKkH,IAAIf,OAAOoY,MAAMnd,MASzBmd,MAAO,SAASnd,KACb,GAAIiN,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAC9BpB,MAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,cAAcgH,YAC5ChF,IAAI+B,YAAY,YAIhBpQ,KAAKkH,IAAIf,OAAOqY,WAAWpd,KAEvBpB,KAAKa,kBACNwN,IAAIhC,KAAK,mBAAmBiB,QAG/Be,IAAI3E,QAAQ,qBAQfsC,KAAM,SAAS5K,KACZpB,KAAK6D,QAAQ0P,eAAe,SAAUnS,IAAK,YAAY,GAEvDpB,KAAKkH,IAAIf,OAAOsY,MAAMrd,MAQzBqd,MAAO,SAASrd,KACbpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiP,SAAS,YAAYhE,KAAK,eAAegG,UAElErS,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKsI,QAAQ,uBAQpC0U,UAAW,SAAShd,KACjB,GAAIwP,IAAK5Q,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,aAElCuE,IAAG2B,GAAG,cACR3B,GAAGmG,OAAO,aACPC,MAAO,UACP,MASTwH,WAAY,SAASpd,KAClB,GAAIsd,MAAO1e,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,iBAGrB,KAAhBqS,KAAK/X,QAIT+X,KAAK1E,YACFU,SAAWgE,KAAK5Z,IAAI,GAAG6Z,aAAe,QAkB5ClL,YAAa,SAASrS,IAAKwd,UAAWlb,IAAKmb,UAAWC,UAAWC,MAAOC,QACrE,GAAIrb,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzC6d,SAAWvb,GAGfA,KAAM1D,KAAKwM,WAAW9I,KACtBA,IAAM1D,KAAKuM,WAAW7I,KAIJ,QAAdkb,WAAuBjb,KAAK4M,WAAa2C,IAAI7R,MAAM6d,mBAAqBJ,aAAc,IACvFF,UAAY,MACZlb,IAAMvD,EAAE8I,EAAE,iEAGK,OAAd2V,WAAsBjb,KAAK4M,WAAa2C,IAAI7R,MAAM6d,oBACnDN,UAAY,MACZlb,IAAMvD,EAAE8I,EAAE,gCAAkC,IAAMvF,KAGnC,QAAdkb,WAAoC,SAAbjb,KAAK8M,MAC7BmO,UAAY,MACZlb,IAAMvD,EAAE8I,EAAE,mEAGb4V,UAAYA,WAAalb,KAAK4M,WAAa2C,IAAI7R,MAAM8R,kBACrD,IAAIgM,MAAOnf,KAAK6D,QAAQub,YAAYhe,IAAKwd,UAAWlb,IAAKmb,UAAWC,UAAWC,MAAOC,OAEpE,QAAdJ,WACDze,EAAEqG,UAAUkD,QAAQ,sBAAwBtI,IAAK6d,WAGlC,QAAdL,WAAuB5e,KAAKK,QAAUye,aAAc,GACrD9e,KAAK8G,KAAKuY,YAAYje,IAAK6d,SAAUE,KAAK7K,KAG7CtU,KAAKkH,IAAIf,OAAOmZ,aAAale,IAAK+d,MAEhB,QAAdP,WAA+B,MAARlb,KACxB1D,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAO,OAY9Cke,aAAc,SAASle,IAAK+d,KAAMve,SAC/B,GAAIyN,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAC1BsC,IAAMyb,KAAKzb,IACXkb,UAAYO,KAAKP,UACjBtK,IAAM6K,KAAK7K,GAEXjG,KAAIhC,KAAK,mBAAmBkG,GAAG,iBAAmBvS,KAAKa,kBAAkC,OAAd+d,YAAuBhe,SACnGZ,KAAKkH,IAAIf,OAAOiY,UAAUhd,KAG7BsC,IAAMA,IAAI+H,QAAQzL,KAAKqB,MAAMS,MAAMG,IAAK,SAASsd,KAE9C,GAAIhH,MAAQgH,IAAInW,MAAM,iBAAoBmW,IAAM,UAAYA,GAE5D,OAAO,YAAchH,KAAO,qBAAuBgH,IAAM,SAG5D7b,IAAMA,IAAI+H,QAAQ,GAAIzJ,QAAO,YAAchC,KAAKqB,MAAMS,MAAMC,IAAIyd,OAAS,oBAAqB,KAAM,SAASpW,MAAOqW,SAAUjY,IAAK6Q,QAChI,MAAiB,UAAboH,UACqB,gBAAXpH,UACR7Q,KAAO6Q,QAGH,iBAAmB7Q,IAAM,KAAOA,IAAM,QAGzC,mBAAqBA,IAAM,qBAAuBA,IAAM,SAGlErH,EAAEgI,KAAKnI,KAAKkH,IAAI+G,SAAU,SAASP,EAAGrF,KACnC3E,IAAMA,IAAI+H,QAAQpD,IAAI,GAAI,SAASe,MAAOsW,IAIvC,GAAchS,GAAViS,IAAM,EACV,KAAKjS,EAAI,EAAGA,EAAIgS,GAAG/Y,OAAQ+G,IACxBiS,KAAO,KAAOD,GAAG1R,WAAWN,GAAK,GAGpC,OAAO,eAAiBiS,IAAM,+BAAiCtX,IAAI,GAAK,SAI9E,IAAIuX,QAASzf,EAAE,SAAU0f,SAAW1f,EAAE,QA2BtC,IA1BAyf,OAAOvP,SAAS,yBAA2BuO,WAC3CgB,OAAO9P,KAAK,KAAMwE,KAClBsL,OAAOxb,KAAK,QAAUV,IAAM,UAC5Bmc,SAASxP,SAAS,kBAClBwP,SAAS1T,KAAKnM,KAAKqC,iBAAiB8c,KAAKJ,QAErCI,KAAKW,UACNF,OAAOvP,SAAS,iBAGf8O,KAAKL,WACNc,OAAOvP,SAAS,kBAGf8O,KAAKN,WACNe,OAAOvP,SAAS,kBAGD,QAAduO,UACD5e,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,kBAAkB0C,OAAO,6BACzB,mBAAfoQ,MAAKJ,OACpBa,OAAO7Q,OAAO8Q,UAGjBxR,IAAIhC,KAAK,kBAAkB0C,OAAO6Q,QAEP,gBAAhBT,MAAKH,QAAuC,OAAhBG,KAAKH,OAAiB,CAC1D,GAAIe,OAAQ,GACRC,UAAY7f,EAAE,QAGlB,IAFA6f,UAAU3P,SAAS,eAAe4P,UAAUL,QAEb,gBAApBT,MAAKH,OAAOxX,IAAkB,CACtCoY,OAAO9P,KAAK,WAAY9P,KAAKiH,SAASkY,KAAKH,OAAOxX,KAElD,IAAI7D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASkY,KAAKH,OAAOxX,SACvExH,MAAKkH,IAAIoD,aAAasV,OAAQ5f,KAAKiH,SAASkY,KAAKH,OAAOxX,KAAM7D,KAAKgN,QAEnEoP,MAAQ/f,KAAKiH,SAASkY,KAAKH,OAAOxX,KAGL,gBAArB2X,MAAKH,OAAOpQ,OACpBgR,OAAO9P,KAAK,YAAaqP,KAAKH,OAAOpQ,MAEN,gBAApBuQ,MAAKH,OAAOxX,KACnBxH,KAAKkH,IAAI+J,kBAAkB+O,UAAWb,KAAKH,OAAOpQ,MAGxC,KAAVmR,QACAA,MAAQ,KAAOA,OAGnBA,MAAQZ,KAAKH,OAAOpQ,KAAOmR,MAE3BF,SAAS1T,KAAK0T,SAAS1T,OAAS,IAAMgT,KAAKH,OAAOpQ,OAGrDoR,UAAUlQ,KAAK,QAAS9P,KAAKuM,WAAWwT,QAG3C/f,KAAKkH,IAAIiR,gBAAgB9J,KACzBrO,KAAKkH,IAAI0R,YAAYvK,KAErBrO,KAAKkH,IAAIf,OAAOqY,WAAWpd,KAGtBiN,IAAIhC,KAAK,mBAAmBkG,GAAG,YAAavS,KAAKa,kBAAqBD,SACxEZ,KAAKkH,IAAI8Q,UAAU5W,MAWzB8K,QAAS,SAAS9K,IAAK+K,MACpBnM,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,mBAAmBhE,IAAI8D,OASxDgS,YAAa,SAAS/c,KAGnB,IAFA,GAAIsd,MAAO1e,KAAK6D,QAAQoB,YAAY,OAAQ7D,KAE5B,OAATsd,MAAiBA,KAAK/X,OAAS,GAAG,CACtC,GAAIgV,GAAI+C,KAAKwB,KACblgB,MAAKkH,IAAIf,OAAOmZ,aAAale,IAAKua,GAAG,KAU3C0B,MAAO,SAASjc,KACbpB,KAAK6D,QAAQ8D,YAAY,OAAQvG,QACjCpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,kBAAkBR,UAStD7L,KAAKkH,IAAI8H,UAUNlK,IAAK,SAAS8J,KAAMxN,IAAKsC,KAGtB,GAAIyc,KACDC,oBAAqBpgB,KAAK6D,QAAQoB,YAAY,oBAAsBjF,KAAK6D,QAAQoB,YAAY,oBAAoBwG,QAAQ,UAAW,OAAStL,EAAE8I,EAAE,iBACjJoX,OAAQrgB,KAAK6D,QAAQC,QAAQ,QAAU,GACvCwc,QAAS/U,QAAQgV,eAAevgB,KAAK6D,QAAQC,QAAQ,QAAU,KAAO,GACtE0c,KAAMxgB,KAAK4E,QAAQ4b,KACnBC,SAAUzgB,KAAK4E,QAAQ6b,SAI1B,IAAIrf,IAAK,CACN,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CjB,GAAE0E,OAAOsb,IACNO,qBAAuB/c,MAAQA,KAAKgd,YAAehd,KAAKgd,YAAYlV,QAAQ,UAAW,OAAStL,EAAE8I,EAAE,iBACpG2X,QAASxf,IACTyf,SAAWld,MAAQA,KAAKiL,KAAQjL,KAAKiL,KAAOxN,MAK9CsC,KACDvD,EAAE0E,OAAOsb,IACNzc,IAAKA,KAIX,IAAIod,KAAM9gB,KAAKkH,IAAI8H,SAASJ,KAE5B,OAAqB,gBAAV,MACRkS,IAAM3gB,EAAE,SAAS4O,OAAO5O,EAAE2gB,KAAKnb,QAAQvB,OAEvC0c,IAAMA,IAAIrV,QAAQ,6BAA8B,SAASqN,EAAG/T,KACzD,MAA2B,gBAAZob,IAAGpb,KAAqBob,GAAGpb,KAAO+T,MAMvD9Y,KAAKyD,MAAM,2BAA6BmL,MACjCA,OAEVmS,qBAAsB,2jEA8BtBC,mBAAoB,weAQpBC,WAAY,63CA2BZrZ,OAAQ,2nDAmCRsZ,WAAY,0QAOZC,YAAa,glBAabC,SAAU,4qBAWVC,cAAe,6pBAYfC,cAAe,kTAGfC,aAAc,4RAGdC,UAAW,yKAGXC,MAAO,2JAGPC,eAAgB,mRAMhBC,cAAe,uMAKfC,aAAc,qCACdC,YAAa,4DACgB7hB,KAAKI,QAAU,2kDAS5CqR,MAAO,oPAGPjJ,SAAU,i3EAmCbxI,KAAKkH,IAAI8H,SAAS8S,SAAW,q2CAwB7B9hB,KAAK+hB,KAEFxQ,KAAM,KAGNlQ,OACG2gB,aACGC,MAAO,QACPC,OAAQ,SACRC,QAAS,UACTC,MAAO,QACPC,KAAM,QAETC,MACGC,UAAW,YACXC,YAAa,cACbC,QAAS,UACTJ,KAAM,QAETK,WACGC,KAAM,EACNC,QAAS,EACTC,OAAQ,EACRC,kBAAmB,EACnBC,UAAW,IAWjBpe,KAAM,SAAS4X,GACZ,GAAI1P,MAAO7M,KAAK+hB,GAChBlV,MAAK0E,KAAOvR,KAAK8G,KAAKyK,IAEtB,IAAI3M,SAAU2X,GAAKvc,KAAK4E,QAAQE,IAAI,MAEpC,OAAKF,UAAqC,gBAAnBA,SAAQoe,QAoC3BhjB,KAAKkH,IAAIU,OAAO+R,MACjB9M,KAAKoW,WAEL9iB,EAAEqG,UAAUQ,IAAI,oBAAqBhH,KAAK+hB,IAAIkB,UAGjD9iB,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK+hB,IAAImB,YACzC/iB,EAAEqG,UAAUC,GAAG,sBAAuBzG,KAAK+hB,IAAIoB,iBAE/CtW,KAAK0E,KAAK6R,WAAWvW,KAAKwW,mBAAoB,KAAM,UAAW,aAC/DxW,KAAK0E,KAAK6R,WAAWvW,KAAKyW,eAAgB,KAAM,UAAW,cAC3DzW,KAAK0E,KAAKwQ,IAAIwB,UAAYvjB,KAAK6D,QAAQoB,YAAY,oBA9ChDjF,KAAKyD,MAAM,4BAGX8G,YAAW,WACRsC,KAAK0E,KAAKiS,MAAMC,MAAMlY,QAAQoJ,iBAAiB9H,KAAK0E,KAAK/J,KAAM,KAAM,SAASic,OAC3EtjB,EAAEsjB,OAAOpX,KAAK,QAAQlE,KAAK,WACxB,GAAIX,KAAMrH,EAAE0G,MAAMiJ,KAAK,OACnB4T,YAAa,CAoBjB,OAlBA7W,MAAK0E,KAAKiS,MAAM9S,KAAKlJ,IAAK,KAAM,SAASkJ,MACtC,GAAIiT,YAAaxjB,EAAEuQ,MAAMrE,KAAK,gBAAkBd,QAAQrJ,GAAG0hB,IAAM,MAC7DC,YAAc1jB,EAAEuQ,MAAMrE,KAAK,+CAE3BsX,YAAWhd,OAAS,GAAKkd,YAAYld,OAAS,IAC/C3G,KAAKyD,MAAM,oBAAqB+D,KAEhCxH,KAAK4E,QAAQM,IAAI,OACd8d,OAAQxb,IACRoH,KAAMzO,EAAEuQ,MAAMrE,KAAK,YAAYyD,KAAK,UAGvC4T,YAAa,EAEb7W,KAAKlI,WAIH+e,gBAGd,OAwBTT,SAAU,WACP,GAAItI,IAAKxa,EAAE,QAAQ2P,KAAK,QAAS,iBAAiB3D,KAAKhM,EAAE8I,EAAE,aAE3D0R,IAAGrO,MAAMtM,KAAK+hB,IAAI+B,cAElB3jB,EAAE,iBAAiB4O,OAAO4L,KAQ7BmJ,aAAc,WACX,GAAIjX,MAAO7M,KAAK+hB,IACZlP,OAAS7S,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,YAGxD+N,QAAOxG,KAAK,cAAcL,OAG1B6G,OAAOxG,KAAK,gBAAgBhE,IAAIrI,KAAK4E,QAAQE,IAAI,OAAOke,OAGxD;GAAIe,eAAgB,SAASpG,MAAOqG,UAAWC,MAC5C,GAAIvgB,IAEJ,QAAQsgB,WACL,IAAK,iBAEFtgB,IAAMvD,EAAE8I,EAAE,yBACV,MACH,KAAK,wBAEFvF,IAAMvD,EAAE8I,EAAE,iCACV,MACH,KAAK,YAEFvF,IAAMvD,EAAE8I,EAAE,gCACV,MACH,KAAK,WAEFvF,IAAMvD,EAAE8I,EAAE,yBACV,MACH,KAAK,sBAEFvF,IAAMvD,EAAE8I,EAAE,sBACV,MACH,KAAK,iBAEFvF,IAAMvD,EAAE8I,EAAE,uBACV,MACH,KAAK,cAEFvF,IAAMvD,EAAE8I,EAAE,iCACV,MACH,SACGjJ,KAAKyE,KAAK,gCAAkCuf,WAC5CtgB,IAAMvD,EAAE8I,EAAE,SAAW,KAAO+a,UAIlC,GAAIE,WAAYrX,KAAK0E,KAAKwQ,IAAIwB,UAAU/K,QAAQyL,KAE5CC,WAAY,KACbrX,KAAK0E,KAAKwQ,IAAIwB,UAAUY,OAAOD,UAAW,SACnCrX,MAAK0E,KAAKwQ,IAAIqC,MAAMH,OAG9BpR,OAAOxG,KAAK,iBAAiBF,KAAKzI,KAGrCvD,GAAEqG,UAAUC,GAAG,iBAAkBsd,eAEjC5jB,EAAEqG,UAAUC,GAAG,oBAAqB,WACjCtG,EAAEqG,UAAUO,IAAI,iBAAkBgd,iBAIrClX,KAAK0E,KAAKwQ,IAAIsC,UAAUrkB,KAAK4E,QAAQE,IAAI,OAAOke,OAAQ,SAASxR,QAE9DrR,EAAE,8BAA8BqO,SAEhCrO,EAAEqR,QAAQnF,KAAK,QAAQlE,KAAK,WACzB,GAAImc,GAAInkB,EAAE,YACNokB,KAAOpkB,EAAE0G,MAAMiJ,KAAK,OAAOpE,cAC3B8Y,MAAQjZ,QAAQgV,eAAegE,MAC/BE,MAAQtkB,EAAE0G,MAAMiJ,KAAK,SAAW0U,KAEpCF,GAAEnY,KAAKsY,OACPH,EAAExU,KAAK,WAAYyU,MACnBD,EAAExU,KAAK,QAAS0U,OAEhBrkB,EAAE,yBAAyB4O,OAAOuV,IAGrC,IAAIpf,KAAM/E,EAAEqR,QAAQnF,KAAK,8CAEzB,IAAInH,IAAIyB,OAAS,EAAG,CACjB,GAAI+d,OAAQxf,IAAImH,KAAK,SAASF,QAAU,GAExC0G,QAAOxG,KAAK,mBAAmB+D,YAAY,gBAAgBjE,KAAKhM,EAAE8I,EAAE,mBACjEyb,MAAOA,aAGV7R,QAAOxG,KAAK,mBAAmBL,QAElC,WACAhM,KAAKyE,KAAK,wBAGVoO,OAAOxG,KAAK,mBAAmBL,SAGlC6G,OAAOxG,KAAK,kBAAkByD,KAAK,cAAevE,QAAQgV,eAAe1T,KAAK0E,KAAK/J,MAEnFqL,OAAOxG,KAAK,kBAAkBC,MAAM,SAAS8C,IAC1CA,GAAGsN,gBAEH,IAAIuH,MAAQ9jB,EAAE,cAAckI,MAASrI,KAAKiH,SAAS9G,EAAE,cAAckI,OAAS,KACxEsc,SAAWxkB,EAAE,kBAAkBkI,OAASkD,QAAQgV,eAAe1T,KAAK0E,KAAK/J,KACzEsB,SAAW3I,EAAE,kBAAkBkI,OAAS,IAE5C,KAAK4b,OAASA,KAAK7a,MAAM,uBAMtB,MALAjJ,GAAE,cAAckQ,SAAS,gBAAgBwD,MAAM,WACxC1T,EAAE0G,MAAMwB,OACTlI,EAAE0G,MAAMuJ,YAAY,mBAGnB,CAOV,IAJK6T,KAAK7a,MAAM,YACb6a,MAAQ,IAAMjkB,KAAK4E,QAAQE,IAAI,OAAOke,QAGrChjB,KAAK8G,KAAKyK,KAAKwQ,IAAIwB,UAAU/K,QAAQyL,MAAQ,EAAG,CAGjD,GAAIW,eAAgB,SAASC,SAAUC,SAGpC9kB,KAAKkH,IAAI2L,OAAO5D,SAEhB4D,OAAOxG,KAAK,kBAAkBL,OAE9B6G,OAAOxG,KAAK,cAAcJ,OAAO8K,OAAO,aACrCC,MAAO,SACP,KAEHnE,OAAOxG,KAAK,cAAcC,MAAM,SAAS8C,IAKtC,MAJAA,IAAGsN,iBAEH7P,KAAK4C,KAAKwU,KAAMU,SAAU7b,SAAU+b,SAAUC,UAEvC,IAIbjS,QAAOxG,KAAK,aAAa0C,OAAO5O,EAAE,OAAOgM,KAAKhM,EAAE8I,EAAE,6BAA6BoH,SAAS,iBACxFrQ,KAAKkH,IAAI2L,OAAO5D,SAEhBpC,KAAK0E,KAAKiS,MAAM9S,KAAKuT,KAAM,KAAM,SAASzS,QACvCqB,OAAOxG,KAAK,aAAajI,KAAK,MAAQjE,EAAE8I,EAAE,gBAAkB,OAE5D,IAAI8b,OAAQ5kB,EAAE,UAEdA,GAAEqR,QAAQnF,KAAK,WAAWlE,KAAK,WAC5B,GAAI6c,SAAU7kB,EAAE0G,MAAMiJ,KAAK,MAE3B,IAAgB,KAAZkV,SAAkBrf,KAAKsf,OAAOD,SAAU,CACzC,GAAIE,IAAK/kB,EAAE,OACXA,GAAE,QAAQgM,KAAKhM,EAAE8I,EAAE+b,QAAU,aAAavQ,SAASyQ,IACnD/kB,EAAE,QAAQgM,KAAKhM,EAAE8I,EAAE+b,QAAU,iBAAiBvQ,SAASyQ,IACvDA,GAAGzQ,SAASsQ,UAIlBlS,OAAOxG,KAAK,aAAa0C,OAAOgW,MAEhC,IAAIF,UAAW1kB,EAAEqR,QAAQnF,KAAK,YAAYyD,KAAK,QAC3CgV,QAAU3kB,EAAEqR,QAAQnF,KAAK,qCAAqCyD,KAAK,QAIvE8U,eAAcC,SAAUC,UACxB,WACAjS,OAAOxG,KAAK,aAAaR,QACzB1L,EAAE,OAAOgM,KAAKhM,EAAE8I,EAAE,oBAAoBwL,SAAS5B,OAAOxG,KAAK,cAE3DuY,sBAGH/R,QAAOxG,KAAK,iBAAiBF,KAAKhM,EAAE8I,EAAE,gCAGzC,QAAO,IAGV4J,OAAOxG,KAAK,SAAS8Y,QAAQ,SAAS/V,IAEnC,MAAiB,MAAbA,GAAGkM,OAGJzI,OAAOxG,KAAK,iBAAiBR,aAEzBgH,OAAOxG,KAAK,kBAAkBkG,GAAG,aAClCM,OAAOxG,KAAK,kBAAkBJ,OAC9B4G,OAAOxG,KAAK,cAAcL,OAAOjF,IAAI,SACrC8L,OAAOxG,KAAK,aAAaR,QACzB7L,KAAKkH,IAAI2L,OAAO5D,iBAMjB4D,OAAOxG,KAAK,kBAAkBkG,GAAG,WAGnCM,OAAOxG,KAAK,cAAcC,QAF1BuG,OAAOxG,KAAK,kBAAkBC,YAiBvCmD,KAAM,SAASwU,KAAMU,SAAU7b,SAAU+b,SAAUC,SAChD,GAAIjY,MAAO7M,KAAK+hB,GAEhB/hB,MAAK6D,QAAQ8D,YAAY,QAASsc,MAC/Bzc,IAAKyc,KACLrV,KAAMiW,UAAYZ,KAClBxT,IAAK,OACLkB,KAAM,YACNyK,MAAOvP,KAAKxL,MAAMqhB,UAAUC,KAC5BmC,QAASA,UAGZ9kB,KAAK8G,KAAKyK,KAAKwQ,IAAItS,KAAKwU,KAAMU,SAAU,KAAM,KAAM,KAAM7b,WAS7Dsc,MAAO,SAASnB,MACb,GAAIpX,MAAO7M,KAAK+hB,IACZsD,IAAMrlB,KAAK6D,QAAQoB,YAAY,oBAC/BtB,KAAO3D,KAAK6D,QAAQoB,YAAY,QAASgf,SAEzCtgB,MAAKyY,QAAUvP,KAAKxL,MAAMqhB,UAAUE,QACrC/V,KAAK0E,KAAKwQ,IAAIqD,MAAMnB,KAAMoB,IAAIpB,MAAO,WAClCpX,KAAKyY,SAASrB,QAGjBpX,KAAKyY,SAASrB,OAWpBqB,SAAU,SAASrB,MAChB,GAAIpX,MAAO7M,KAAK+hB,IACZsD,IAAMrlB,KAAK6D,QAAQoB,YAAY,mBAEnCjF,MAAK6D,QAAQ8D,YAAY,YAAakF,KAAK0E,KAAKwQ,IAAIwB,iBAE7C8B,KAAIpB,MACXjkB,KAAK6D,QAAQ8D,YAAY,eAAgB0d,KACzCrlB,KAAK6D,QAAQ2T,eAAe,SAAUyM,MACtCjkB,KAAK6D,QAAQ2T,eAAe,OAAQyM,MAEpCjkB,KAAKkH,IAAIf,OAAOqN,MAAMyQ,MACtBjkB,KAAKkH,IAAIU,OAAOoT,MAAMiJ,OAWzBsB,QAAS,SAAStB,KAAMuB,WAAYC,UACjC,GAAI5Y,MAAO7M,KAAK+hB,GAEhB/hB,MAAK6D,QAAQ0P,eAAe,QAAS0Q,KAAM,QAASpX,KAAKxL,MAAMqhB,UAAUI,mBACzE9iB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,4BAE7C,IAAIwS,IAAKC,KACNnb,GAAI0jB,KACJtS,KAAM,QACNgK,EAAE,SACFC,MAAOrQ,QAAQrJ,GAAGwjB,YAClB/J,EAAE,UAEL3b,MAAK+hB,IAAIxQ,KAAKsK,OAAOJ,GAAGkK,OAAQH,WAAYC,WAS/CjS,MAAO,SAASyQ,MACb,GAAIpX,MAAO7M,KAAK+hB,IACZ6D,SAAW5lB,KAAK6D,QAAQoB,YAAY,QAASgf,SAEjDpX,MAAKgZ,aAAa5B,KAElB,IAAIC,WAAYrX,KAAK0E,KAAKwQ,IAAIwB,UAAU/K,QAAQyL,KAE5CC,WAAY,KACbrX,KAAK0E,KAAKwQ,IAAIwB,UAAUY,OAAOD,UAAW,SACnCrX,MAAK0E,KAAKwQ,IAAIqC,MAAMH,OAG9BjkB,KAAK6D,QAAQ8D,YAAY,YAAakF,KAAK0E,KAAKwQ,IAAIwB,WAEhDqC,SAASxJ,QAAUvP,KAAKxL,MAAMqhB,UAAUI,mBACzCjW,KAAKyY,SAASrB,MAGjB2B,SAASxJ,MAAQvP,KAAKxL,MAAMqhB,UAAUK,UAEtC/iB,KAAK6D,QAAQ8D,YAAY,QAASsc,KAAM2B,WAW3CE,WAAY,SAASnI,MAAOtP,KACzB,GAAIxB,MAAO7M,KAAK+hB,IACZpe,KAAO0K,IAAI1K,OACXvC,IAAMpB,KAAKiH,SAAStD,KAAK6D,KACzBoe,SAAW5lB,KAAK6D,QAAQoB,YAAY,QAAS7D,IAEjD,KAAKpB,KAAK8G,KAAKyK,KAIZ,WAHApR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrC6F,KAAKiZ,WAAW,KAAMzX,MAK5B,MAAIxB,KAAK0E,KAAKwQ,IAAIwB,UAAU/K,QAAQ7U,KAAK6D,KAAO,GAAhD,CAIA6G,IAAIgC,SAAS,iBAEb,IAAIgV,KAAMrlB,KAAK6D,QAAQoB,YAAY,oBAC/B8gB,YAAcV,IAAIjkB,KAClB4kB,OAAS7lB,EAAE,mCAEfkO,KAAIhC,KAAK,gCAAgC4Z,MAAMD,OAE/C,IAAIE,IAAK/lB,EAAE,+CACXkO,KAAIhC,KAAK,cAAcnI,QAAQgiB,IAE/BA,GAAGzf,GAAG,QAAS,SAAS2I,IACrBpP,KAAK+hB,IAAIoE,mBAAmB/kB,IAAMgO,GAAGC,cAAcC,WAAa,EAAK,GAAK,MAI7E,IAAI8W,UAAW,SAAShX,IACjBA,IACDA,GAAGsN,gBAGN,IAAI2J,gBACAjU,GAAK8T,GAAG7Z,KAAK,YACbia,WAAa,IAIjB,IAFAJ,GAAGzT,YAAY,eAEXyT,GAAGhO,SAAS,eAAgB,CAC7B/X,EAAE,QAAQmM,QACVnM,EAAE,QAAQ6G,IAAI,QAASof,UAEvBhU,GAAGM,WAAW,WACXN,GAAGzO,KAAK,QAASwC,OAAOoE,WAAW6b,SAAU,QAC7CzT,WAAW,WACXxM,OAAO0E,aAAauH,GAAGzO,KAAK,YAC5BwN,IAAI,OAAQ,MAEf,IAAIoV,WAAkD,GAAtClY,IAAIhC,KAAK,kBAAkBkJ,SACvC2H,YAAcgJ,GAAG7Z,KAAK,MAAMkJ,SAAW,CAC3C+Q,YAAcpJ,YAAcqJ,UAAaA,UAAYrJ,YAErDmJ,aACGpM,SAAU,MACV1E,OAAQ+Q,WAAa,KACrB1U,MAAO,OACPoF,MAAO,OACPkD,QAAS,OAGZgM,GAAG/U,IAAI,SAAUmV,WAAa,UAE9BD,cACGd,SAAS,GAGZnT,GAAGtC,KAAK,QAAS,IACjBoW,GAAG/U,IAAI,SAAU,IAEjBhL,OAAO0E,aAAauH,GAAGzO,KAAK,UAC5BxD,EAAE,QAAQ4G,IAAI,QAAS,KAAMqf,UAC7BhU,GAAGrL,IAAI,wBAKV,OAFAqL,IAAGoU,WAAWH,cAEP,EAGVL,QAAO1Z,MAAM8Z,UAEb/X,IAAI5H,GAAG,SAAU,WAEdzG,KAAK+hB,IAAIoE,mBAAmB/kB,IAAK,KAIpCmJ,WAAW,WACR,GAAIwT,KAAM1P,IAAIhC,KAAK,mBAAmByR,WAAWC,IAAM1P,IAAIhC,KAAK,kBAAkByR,WAAWC,GAC7F1P,KAAIhC,KAAK,mBAAmB8E,IAAI,MAAO4M,IAAM,OAC7C,IAEH,IAAIwH,SAAUplB,EAAE,OAUhB,IATAolB,QAAQpZ,KAAKhM,EAAE8I,EAAE,YACjBsc,QAAQlV,SAAS,gBACjBkV,QAAQvZ,OACRuZ,QAAQjZ,MAAM,WACXO,KAAK0Y,QAAQnkB,OAGhBiN,IAAIhC,KAAK,qBAAqB0C,OAAOwW,SAEjCK,SAASxJ,MAAQvP,KAAKxL,MAAMqhB,UAAUC,KAAM,CAC7C,GAAI8D,QAASzmB,KAAK6D,QAAQoB,YAAY,SAAU7D,QAEhDjB,GAAEgI,KAAKse,OAAQ,SAAS9B,SAAUtc,KAC/BwE,KAAK6Z,aAAatlB,IAAKujB,SAAUtc,KAE7Bsc,WAAaoB,aAAe1d,IAAIse,cAAgB9Z,KAAKxL,MAAM2gB,YAAYI,OACxEmD,QAAQtZ,SAKjB,GAAImZ,OAAQjlB,EAAE,OACdilB,OAAMjZ,KAAKhM,EAAE8I,EAAE,UACfmc,MAAM/U,SAAS,cACf+U,MAAM9Y,MAAM,WACTO,KAAKuY,MAAMhkB,OAGdiN,IAAIhC,KAAK,qBAAqB0C,OAAOqW,SAaxClC,WAAY,SAASvF,MAAO3J,KAAM1D,OAAQsW,UACvC,GAAI/Z,MAAO7M,KAAK+hB,IACZkC,KAAOjkB,KAAKiH,SAAS+M,MACrB6S,MAAQ1mB,EAAEymB,UAAUva,KAAK,aAAed,QAAQrJ,GAAG0hB,IAAM,KAE7D,IAAI/W,KAAK0E,KAAKwQ,IAAIwB,UAAU/K,QAAQyL,MAAQ,GAAsB,IAAjB4C,MAAMlgB,OACpD,OAAO,CAGV,IAAI8O,KAAMlK,QAAQub,mBAAmB9S,OAAS,GAC1C2Q,SAAWpZ,QAAQwb,aAAatR,KAChC4P,IAAMrlB,KAAK6D,QAAQoB,YAAY,oBAC/BwhB,OAASzmB,KAAK6D,QAAQoB,YAAY,SAAUgf,UAC5C+C,QAUJ,IARAH,MAAMxa,KAAK,UAAUlE,KAAK,WACvB,GAAI8e,MAAO9mB,EAAE0G,MAAMiJ,KAAK,OAExB9P,MAAKyD,MAAM,cAAewjB,MAE1BD,MAAM1e,KAAK2e,QAG+B,IAAzCjnB,KAAKkH,IAAIU,OAAO9D,QAAQmgB,MAAMtd,OAAc,CAG7C3G,KAAK6D,QAAQ8D,YAAY,YAAa3H,KAAK8G,KAAKyK,KAAKwQ,IAAIwB,WAGzDvjB,KAAK6D,QAAQ2T,eAAe,OAAQyM,MACpCwC,SAEA,IAAIS,IAAKlnB,KAAK6D,QAAQoB,YAAY,YAClCiiB,IAAG5e,KAAK2b,MACRjkB,KAAK6D,QAAQ8D,YAAY,YAAauf,IAEtClnB,KAAKkH,IAAIU,OAAOgE,IAAIqY,MAEpBjkB,KAAKkH,IAAIf,OAAOmI,KAAK2V,MACrBjkB,KAAKkH,IAAI2L,OAAOW,QAGnB,GAAIhM,KAAMqf,MAAMxa,KAAK,QAAQyD,KAAK,QAAU,IAE5C,IAAe,IAAXQ,OACD,GAAIuW,MAAMxa,KAAK,WAAW1F,OAAS,EAEhC8f,UAEAzmB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,8BAE7C4D,KAAK2G,MAAMyQ,UACP,OACGwC,QAAO9B,UAEd9X,KAAKsa,aAAalD,KAAMU,SAExB,IAAIyC,aAAcP,MAAMxa,KAAK,QAAQyD,KAAK,OAEtCkX,OAAMxO,QAAQ,OAAS,IAAM4O,aAG9BA,YAAc7b,QAAQwb,aAAaK,aAGnCX,OAAOW,gBAEPpnB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,mBAC1Coe,YAAa1C,SACbyC,YAAaA,YACbE,qBAAqB,OAEC,IAAjBN,MAAMrgB,QAAkC,IAAjBqgB,MAAMrgB,QAAgBqgB,MAAMxO,QAAQ,OAAS,KAE5ExY,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,qBAC1C0b,SAAUA,SACV2C,qBAAqB,UAOzBb,OAAO9B,WAAaU,IAAIpB,OAC1BjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,oBAC1C0b,SAAUA,SACV2C,qBAAqB,KAI3Bb,OAAO9B,WACJnd,IAAKA,IACL8I,OAAQA,OACRiX,QAASvT,KACT2S,YAAaE,MAAMxa,KAAK,QAAQyD,KAAK,eACrC0X,KAAMX,MAAMxa,KAAK,QAAQyD,KAAK,SAGjCjD,KAAK6Z,aAAazC,KAAMU,SAAU8B,OAAO9B,UAe5C,OAZA3kB,MAAK6D,QAAQ8D,YAAY,SAAUsc,KAAMwC,QAEzCtmB,EAAEgI,KAAK6e,MAAO,SAAS5e,MAAO6e,MAGQ,kBAAxBpa,MAAK4a,SAASR,OACtBpa,KAAK4a,SAASR,MAAMlf,KAAKlB,KAAMod,KAAMU,SAAU8B,OAAO9B,cAAiBkC,OAG1E1mB,EAAEqG,UAAUkD,QAAQ,mBAAoBud,KAAMhD,KAAMU,SAAU8B,OAAO9B,cAAiBiC,cAGlF,GAYVzD,gBAAiB,SAASxF,MAAO3J,KAAM4S,UACpC,GAAI/Z,MAAO7M,KAAK+hB,IACZ8E,MAAQ1mB,EAAEymB,UAAUva,KAAK,YAAcd,QAAQrJ,GAAG0hB,IAAM,MACxDK,KAAOjkB,KAAKiH,SAAS+M,KAEzB,IAAqB,IAAjB6S,MAAMlgB,QAAgBkG,KAAK0E,KAAKwQ,IAAIwB,UAAU/K,QAAQyL,MAAQ,EAC/D,OAAO,CAGV,IAAIvf,OAAQvE,EAAEymB,UAAUva,KAAK,SACzB2X,UAAYtf,MAAMyR,WAAW,GAAGC,OAMpC,OAJApW,MAAKyD,MAAM,eAAgBugB,WAE3B7jB,EAAEqG,UAAUkD,QAAQ,kBAAmBsa,UAAWC,QAE3C,GAQVwD,UAEGC,IAAK,SAASzD,KAAMU,SAAUhhB,MAC3B,GAAIkJ,MAAO7M,KAAK+hB,IACZsD,IAAMrlB,KAAK6D,QAAQoB,YAAY,mBAEnCogB,KAAIpB,MAAQU,SACZ3kB,KAAK6D,QAAQ8D,YAAY,eAAgB0d,KAErC1hB,KAAKgjB,cAAgB9Z,KAAKxL,MAAM2gB,YAAYI,OAC7CpiB,KAAKkH,IAAIf,OAAOrB,IAAImf,MAAM5X,KAAK,iBAAiBJ,MAGnD,IAAI2Z,UAAW5lB,KAAK6D,QAAQoB,YAAY,QAASgf,KAE7C2B,UAASxJ,QAAUvP,KAAKxL,MAAMqhB,UAAUC,OACzCiD,SAASxJ,MAAQvP,KAAKxL,MAAMqhB,UAAUE,QAEtC5iB,KAAK6D,QAAQ8D,YAAY,QAASsc,KAAM2B,YAI9C+B,IAAK,SAAS1D,MACXjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,6BAGhD2e,IAAK,SAAS3D,MACX,GAAIpX,MAAO7M,KAAK+hB,GAGhBlV,MAAK0E,KAAKwQ,IAAI8F,kBAAkB5D,OAGnC6D,IAAK,SAAS7D,KAAMU,SAAUhhB,KAAMkjB,OACjC,GAAIxB,KAAMrlB,KAAK6D,QAAQoB,YAAY,mBAE/BogB,KAAIpB,QAAUU,UACf3kB,KAAK+hB,IAAIvO,MAAMyQ,MACfjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,uBAE7CjJ,KAAK+hB,IAAIgG,WAAW9D,KAAM4C,QAE1B7mB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,2BAC1C0b,SAAUA,SACV2C,qBAAqB,MAK9BU,IAAK,SAAS/D,KAAMU,SAAUhhB,KAAMkjB,OACjC,GAAIxB,KAAMrlB,KAAK6D,QAAQoB,YAAY,mBAE/BogB,KAAIpB,QAAUU,UACf3kB,KAAK+hB,IAAIvO,MAAMyQ,MACfjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,uBAE7CjJ,KAAK+hB,IAAIgG,WAAW9D,KAAM4C,QAE1B7mB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,2BAC1C0b,SAAUA,SACV2C,qBAAqB,MAK9BW,IAAK,SAAShE,KAAMU,UACjB,GAAIU,KAAMrlB,KAAK6D,QAAQoB,YAAY,mBAE/BogB,KAAIpB,QAAUU,UACf3kB,KAAK+hB,IAAIvO,MAAMyQ,MACfjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,6BAE7CjJ,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,gCAC1C0b,SAAUA,SACV2C,qBAAqB,MAQ9BY,IAAK,SAASjE,KAAMU,UACjB,GAAIU,KAAMrlB,KAAK6D,QAAQoB,YAAY,mBAE/BogB,KAAIpB,QAAUU,UACf3kB,KAAK+hB,IAAIvO,MAAMyQ,MACfjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,6BAE7CjJ,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,gCAC1C0b,SAAUA,SACV2C,qBAAqB,MAQ9Ba,IAAK,SAASlE,MACXjkB,KAAK+hB,IAAIvO,MAAMyQ,MACfjkB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,2BAWnD8e,WAAY,SAAS9D,KAAM4C,OACxB,GAAIuB,QACDxZ,KAAMiY,MAAMxa,KAAK,SAASyD,KAAK,QAC/BtI,IAAKqf,MAAMxa,KAAK,SAASyD,KAAK,QAE7BuY,OAASxB,MAAMxa,KAAK,UAAUF,MAEnB,MAAXkc,SACDA,OAASloB,EAAE8I,EAAE,UAAY,KAAOof,OAEN,gBAAfD,OAAMxZ,MAA0C,gBAAdwZ,OAAM5gB,IAChDxH,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,KAAMoE,QAAQ,GAAO,EAAO,KAAMD,OAEpEpoB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAOoE,UAalD3B,aAAc,SAASzC,KAAMU,SAAU2D,YACpC,GAAIzb,MAAO7M,KAAK+hB,IACZ1T,IAAMrO,KAAKkH,IAAIf,OAAOrB,IAAImf,MAC1Bzc,IAAM8gB,WAAW9gB,IACjB+gB,EAAIla,IAAIhC,KAAK,sCAAwCsY,SAAW,KAEpE,IAAiB,IAAb4D,EAAE5hB,OAAc,CACjB,GAAIoZ,OAAQ/f,KAAKuM,WAAWoY,SAO5B,IALA4D,EAAIpoB,EAAE,oEACNooB,EAAEzY,KAAK,gBAAiB6U,UAExBtW,IAAIhC,KAAK,uBAAuB0C,OAAOwZ,GAEpB,gBAAR/gB,KAAkB,CAC1B+gB,EAAElc,KAAK,cAAcF,KAAKnM,KAAKiH,SAASO,MACxC+gB,EAAEzY,KAAK,WAAY9P,KAAKiH,SAASO,MACjCuY,MAAQA,MAAQ,KAAO/f,KAAKiH,SAASO,IAErC,IAAI7D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASO,KAE9C,QAAT7D,MAAiC,gBAATA,MACzB3D,KAAKkH,IAAIoD,aAAaie,EAAGvoB,KAAKiH,SAASO,KAAM7D,KAAKgN,QAC1C3Q,KAAKiH,SAASO,OAASxH,KAAKiH,SAAS4F,KAAK0E,KAAK/J,MACvDxH,KAAKkH,IAAIoD,aAAaie,EAAGvoB,KAAKiH,SAASO,KAAM,WAGhD+gB,GAAElc,KAAK,cAAcF,KAAKwY,UAE1B3kB,KAAKkH,IAAI+J,kBAAkBsX,EAAElc,KAAK,gBAAiBsY,SAGtD4D,GAAEzY,KAAK,QAASiQ,SAWtBoH,aAAc,SAASlD,KAAMU,UAC1B,GAAItW,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAImf,MAC1BsE,EAAIla,IAAIhC,KAAK,sCAAwCsY,SAAW,KAEhE4D,GAAE5hB,OAAS,GACZ4hB,EAAE/Z,UAWR2X,mBAAoB,SAASlC,KAAMpS,QAChC,GAAIxD,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAImf,KAE9B,KAAI5V,IAAIhC,KAAK,oBAAoB6L,SAAS,eAA1C,CAIA,GAAItH,IAAKvC,IAAIhC,KAAK,6BACdyF,YAAclB,GAAGgB,QACjBA,MAAQvD,IAAIhC,KAAK,oBAAoBuF,QACrCyM,KAAO5b,SAASmO,GAAGO,IAAI,QAE3BkN,MAAQmK,MAAMnK,MAAS,EAAIxM,OAASwM,KAAOxM,OAEzBD,MAAdE,aAAuBuM,KAAO,EAC/BA,KAAO,EACQzM,MAAQE,YAAfuM,OACRA,KAAOzM,MAAQE,aAGlBlB,GAAGO,IAAI,OAAQkN,KAAO,QASzBwH,aAAc,SAAS5B,MACpB,GAAI5V,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAImf,KAE9B5V,KAAIhC,KAAK,oBAAoBR,QAE7B7L,KAAK6D,QAAQ8D,YAAY,SAAUsc,UAWtCZ,mBAAoB,SAASlV,SAC1B,GAAIyI,IAAKzW,EAAEgO,SAAS2B,KAAK,KAEzB,IAAI9P,KAAKuH,UAAUpH,EAAE,IAAMyW,KAExB,OAAO,CAGV,IAAI5C,MAAO7T,EAAEgO,SAAS2B,KAAK,QACvBvB,KAAOpO,EAAEgO,SAAS9B,KAAK,cAAcF,OACrC8X,KAAOjkB,KAAKiH,SAAS+M,MACrB2Q,SAAWpZ,QAAQwb,aAAaxb,QAAQub,mBAAmB9S,MAE/D,IAAa,KAATzF,KAAa,CACd,GAAIqB,OAAQzP,EAAEgO,SAAS9B,KAAK,iCACxB0S,MAASnP,MAAMjJ,OAAS,EAAK,GAAInE,MAAKoN,MAAME,KAAK,UAAY,GAAItN,KACrEuc,OAAQA,MAAMvb,SAEd,IAAIijB,QAASzmB,KAAK6D,QAAQoB,YAAY,SAAUgf,UAE5CjF,SACJA,QAAOpQ,KAAO+V,SAEV8B,OAAO9B,WAA6C,gBAAzB8B,QAAO9B,UAAUnd,MAC7CwX,OAAOxX,IAAMif,OAAO9B,UAAUnd,KAGjCxH,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,KAAM1V,MAAM,GAAO,EAAOwQ,MAAOC,QAGtE,GAAI8F,SAAU3kB,EAAEgO,SAAS9B,KAAK,UAE9B,IAAIyY,QAAQne,OAAS,EAAG,CACrB,GAAIif,UAAW5lB,KAAK6D,QAAQoB,YAAY,QAASgf,KAEjD2B,UAASd,QAAUA,QAAQ3Y,OAE3BnM,KAAK6D,QAAQ8D,YAAY,QAASsc,KAAM2B,UAExC5lB,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,sBAC1C0b,SAAUA,SACVG,QAASA,QAAQ3Y,UAIvB,OAAO,GAUVmX,eAAgB,SAASnV,SACtB,GAAI8V,MAAOjkB,KAAKiH,SAAS9G,EAAEgO,SAAS2B,KAAK,QAEzC,OAAyC,KAArC9P,KAAKkH,IAAIf,OAAOrB,IAAImf,MAAMtd,QACpB,GAGNxG,EAAEgO,SAAS9B,KAAK,kBAAkB1F,OAAS,EAC5C3G,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,oCACrC9I,EAAEgO,SAAS9B,KAAK,aAAa1F,OAAS,EAC9C3G,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,+BACrC9I,EAAEgO,SAAS9B,KAAK,kBAAkB1F,OAAS,EACnD3G,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,oCAE7CjJ,KAAKkH,IAAIf,OAAOsN,YAAYwQ,KAAM,MAAO9jB,EAAE8I,EAAE,qBAGhDjJ,KAAKyD,MAAM,2BAA6BwgB,KAAM9jB,EAAEgO,SAAS9B,KAAK,SAAS,KAEhE,IAaVoc,YAAa,SAAS9K,MAAOsG,KAAMtgB,KAAM0W,KACtC,GAAIxN,MAAO7M,KAAK+hB,GAEE,eAAdpe,KAAKgO,MAIT0I,IAAIhO,KAAK,gBAAgBtF,IAAI,SAASuF,MAAM,WAEzC,MADAO,MAAKuY,MAAMnB,OACJ,MAKhB9jB,EAAEqG,UAAUC,GAAG,mBAAoBzG,KAAK+hB,IAAI+D,YAC5C3lB,EAAEqG,UAAUC,GAAG,kBAAmBzG,KAAK+hB,IAAI0G,aAE3CtoB,EAAEqG,UAAUQ,IAAI,gBAAiB,WAC9BhH,KAAK+hB,IAAIpd,SAGZxE,EAAEqG,UAAUQ,IAAI,iBAAkB,WAC/BhH,KAAK6D,QAAQ2T,eAAe,aAC5BxX,KAAK6D,QAAQ2T,eAAe,kBAS/BxX,KAAKma,QAEFuO,KAAM,EAONtO,KAAM,WAEHja,EAAE,sBAAsBqO,SACxBrO,EAAE,uBAAuBgM,KAAK,IAC9BnM,KAAKma,OAAOuO,KAAO,CAEnB,IAAIC,OAAQ3oB,KAAK6D,QAAQoB,YAAY,eACjCF,IAAM,IAEV,KAAKA,MAAO4jB,OACT,GAAIA,MAAMtT,eAAetQ,KAAM,CAC5B,GAAIsD,KAAMsgB,MAAM5jB,IAEhB/E,MAAKma,OAAOvO,IAAIvD,IAAI3E,IAAK2E,IAAIugB,YAAavgB,IAAImF,OAAQnF,IAAIoF,SAAU1I,OAe7E6G,IAAK,SAASlI,IAAKklB,YAAapb,OAAQC,SAAUmJ,IAC/C,GAAIiS,KAAMjS,IAAMpU,KAAKsmB,MACjBzU,KAAOlU,EAAE,mBACTga,OAASha,EAAE,QAiBf,IAfAga,OAAO7N,MAAM,WAKV,MAJAtM,MAAKma,OAAO3L,OAAOqa,KAEnB7oB,KAAKuN,KAAKC,OAAQC,WAEX,IAGV0M,OAAOhO,KAAKzI,KACZyW,OAAOrK,KAAK,QAAS8Y,aAAe,IACpCzO,OAAOrK,KAAK,WAAY+Y,KACxBxU,KAAKtF,OAAOoL,QAEZha,EAAE,uBAAuBgM,OAAOnM,KAAKma,OAAOuO,OAEvC9R,GAAI,CACN,GAAI+R,OAAQ3oB,KAAK6D,QAAQoB,YAAY,cACrC0jB,OAAME,MACHnlB,IAAKA,IACLklB,YAAaA,YACbpb,OAAQA,OACRC,SAAUA,UAEbzN,KAAK6D,QAAQ8D,YAAY,UAAWghB,OAEpC3oB,KAAKkK,aAAa6e,OAAOrlB,IAAKklB,aAAe,GAAI,MAAM,EAAM5oB,KAAKqB,MAAMK,OAAOG,UAUrF2M,OAAQ,SAASqa,KACd,GAAIjY,IAAKzQ,EAAE,4BAA8B0oB,IAAM,IAE/CjY,IAAGpC,SACHrO,EAAE,uBAAuBgM,OAAOnM,KAAKma,OAAOuO,MAAQ,GAEpD,IAAI5P,GAAI9Y,KAAK6D,QAAQoB,YAAY,iBAC1B6T,GAAE+P,KACT7oB,KAAK6D,QAAQ8D,YAAY,UAAWmR,IAUvCkQ,IAAK,SAASxb,QACX,GAAImb,OAAQ3oB,KAAK6D,QAAQoB,YAAY,eACjC+jB,KAAM,CAUV,OARA7oB,GAAEgI,KAAKwgB,MAAO,SAASvgB,MAAOC,KAC3B,MAAIA,KAAImF,SAAWA,QAChBwb,KAAM,GAEC,GAHV,SAOIA,MASbhpB,KAAKkK,cAGF+e,MAAO,KAOPtkB,KAAM,WACHxE,EAAEqG,UAAUC,GAAG,qBAAsB,SAASkX,MAAOvc,IAAKsC,KACvDA,IAAOA,IAAI0F,MAAM,UAAajJ,EAAE8I,EAAE,qBAAuBvF,GACzD,IAAIC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CpB,MAAKkK,aAAa6e,QACfhJ,MAAO5f,EAAE8I,EAAE,oBAAsB,IAAMtF,KAAKiL,KAC5ClL,IAAKA,IACLwlB,UAAWlpB,KAAKqB,MAAMK,OAAOC,IAC7B6d,OAAQpe,QAIdjB,EAAEqG,UAAUC,GAAG,sBAAuB,WACnCzG,KAAKkK,aAAaif,UAAUnpB,KAAKqB,MAAMK,OAAOE,MAAM,GAAM,KAG7DzB,EAAEqG,UAAUC,GAAG,oCAAqC,WACjDzG,KAAKkK,aAAakf,eAexBL,OAAQ,SAAShJ,MAAOrc,IAAKO,EAAGolB,MAAOH,UAAWI,KAAM9J,QACrD,GAAKxf,KAAK4E,QAAQsF,cAAiBlK,KAAKkK,aAAaE,gBAArD,CAIA,GAAImS,EAgBJ,IAbGA,EADW,OAAVwD,OAAmC,gBAAVA,OACtBA,OAGDA,MAAOA,MACPrc,IAAKA,IACLoY,SAAU7X,EACVolB,MAAOA,MACPH,UAAWA,UACXI,KAAMA,KACN9J,OAAQA,SAIVxf,KAAKqN,YAAekP,EAAE8M,MAA1B,CAIA,GAAIE,MAAOhN,EAAEgN,MAAQvpB,KAAK4E,QAAQ4b,KAAO,oBAEzC,IAAwB,gBAAbjE,GAAEiD,OAAqB,CAC/B,GAAI7b,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASsX,EAAEiD,QAC3CzO,IAAM/Q,KAAK6D,QAAQoB,YAAY,SAAUtB,KAAKgN,OAE/B,iBAARI,MAA4B,MAARA,MAC5BwY,KAAOxY,KAIb/Q,KAAKS,eAAiB8J,WAAW,WAEH,gBAAhBgS,GAAE2M,WACVlpB,KAAKkK,aAAaif,UAAU5M,EAAE2M,UAAW3M,EAAE+M,KAAM/M,EAAE8M,MAGtD,IAAIG,OAAQ,GAAIC,cAAatpB,EAAE8I,EAAEsT,EAAEwD,QAChCxR,KAAMpO,EAAE8I,EAAEsT,EAAE7Y,KACZ6lB,KAAMA,OAGLzN,SAAWS,EAAET,UAAY9b,KAAK4E,QAAQ8kB,aAEtC5N,UAAW,GACZvR,WAAW,WACRif,MAAMhW,SACNsI,WAEN9b,KAAKU,wBASXyJ,WAAY,WACT,GAAIhE,OAAOwjB,oBAAqB,CAG7BxjB,OAAOsjB,aAAe,SAAS1J,MAAOvD,KACnC,GAAIgN,OAAQrjB,OAAOwjB,oBAAoBC,mBAAmB,KAAM7J,MAAOvD,IAAIjO,KAO3E,OANAib,OAAMvd,OAENud,MAAMhW,MAAQ,WACXgW,MAAMK,UAGFL,MAGV,IAAIM,WACJ,QAAQ3jB,OAAOwjB,oBAAoBI,mBAChC,IAAK,GACFD,WAAa9pB,KAAKqB,MAAME,oBACxB,MACH,KAAK,GACFuoB,WAAa9pB,KAAKqB,MAAMG,mBACxB,MACH,SACGsoB,WAAa9pB,KAAKqB,MAAMC,qBAQ9B,MANA6E,QAAOsjB,aAAaK,WAAaA,WAEjC3jB,OAAOsjB,aAAarS,kBAAoB,SAAS4S,MAC9C7jB,OAAOwjB,oBAAoBvS,kBAAkB4S,QAGzC,EACH,MAAI7jB,QAAOsjB,cACR,GAEA,GAQbpf,eAAgB,WAETrK,KAAKma,OAAO6O,IAAI,gCAIpB7oB,EAAEqG,UAAUQ,IAAI,qBAAsB,WACnCuD,WAAW,WACRvK,KAAKma,OAAOvO,IAAIzL,EAAE8I,EAAE,iBAAmB,IAAK9I,EAAE8I,EAAE,yBAA0B,gCAC1E,QAOTmO,kBAAmB,WAChBjR,OAAOsjB,aAAarS,kBAAkB,SAAS9G,QACxCnK,OAAOsjB,aAAaK,aAAexZ,SACpCnK,OAAOsjB,aAAaK,WAAaxZ,QAIjCnQ,EAAEqG,UAAUkD,QADX1J,KAAKkK,aAAaE,gBACC,yBAEA,+BAU7BA,cAAe,WACZ,MAAOjE,QAAOsjB,aAAaK,aAAe9pB,KAAKqB,MAAME,sBAWxD4nB,UAAW,SAASD,UAAWI,KAAMD,OAClC,GAAKrpB,KAAKK,SAKNL,KAAK4E,QAAQE,IAAI,qBAAgE,QAAzC9E,KAAK6D,QAAQoB,YAAY,eAKjEjF,KAAKqN,YAAegc,OAAxB,CAMArpB,KAAKkK,aAAakf,WAElB,IAAIH,OAAQ,GAAIgB,OAAMjqB,KAAK4E,QAAQ4b,KAAO,UAAY0I,UACtDD,OAAMK,KAAOA,OAAQ,EACrBL,MAAMiB,OAENlqB,KAAKkK,aAAa+e,MAAQA,QAQ7BG,UAAW,WACR,GAAIH,OAAQjpB,KAAKkK,aAAa+e,KAET,oBAAVA,QAAmC,OAAVA,QACjCA,MAAMkB,QACNnqB,KAAKkK,aAAa+e,MAAQ,OAWhCnR,UAAW,SAASH,UACjBxX,EAAE,qCAAqCgM,KAAKhM,EAAE8I,EAAE,WAE5C0O,YAAa,GACd3X,KAAK4E,QAAQM,IAAI,oBAAoB,IAW3C6S,YAAa,SAASJ,UACnBxX,EAAE,qCAAqCgM,KAAKhM,EAAE8I,EAAE,SAE5C0O,YAAa,GACd3X,KAAK4E,QAAQM,IAAI,oBAAoB,KAU9ClF,KAAK4E,SAGF6b,SAAU,mBAGV9V,QAAS,IAGTI,YAAa,KAGb7E,KACG2D,QAAQ,EACRugB,iBAAiB,EACjB3mB,OAAO,EACP4mB,qBAAqB,EACrBC,sBAAsB,GAIzBxjB,MACGyY,IAAK,KACL/X,IAAK,KACL2B,OAAQ,KACRL,SAAU,KACV6N,WAAW,EACXjO,SAAS,GAIZ6hB,UACGC,OAAQ,EACR9L,KAAM,EACN+L,KAAM,EACNC,GAAI,EACJC,IAAK,GAIRtjB,WAEGC,KAAM,KAGNE,IAAK,KAGLC,KAAM,KAGN4B,OAAQ,SAAS7B,KACd,MAAOA,MAOVojB,YAAa,SAMbC,WAAY,UAIfnkB,cAAe,KAGfokB,YAAa,GAGbplB,YAAa,KAGbJ,UAAU,EAGVsU,aAAc,OAGd1P,cAAc,EAGdwf,cAAe,IAGflJ,KAAM,GAGNja,aAAc,IAMdmB,uBAAwB,WACrB,OAAO,GAIVmS,aAAa,EAGbkR,kBAAkB,EAQlB/Z,cAAe,SAASxJ,KACrBxH,KAAKkH,IAAI+J,kBAAkB9Q,EAAE0G,MAAMwF,KAAK,gBAAiB7E,MAW5DuB,aAAc,aAWd+N,qBAAsB,aAItBkU,SAEGnhB,QAAQ,GAkBXuK,SAAU,MAMbpU,KAAKkG,KAEFoN,WAEA2X,YAAa,KAYbC,eAAgB,SAASjnB,GACtB,GAAI7C,KAAM6C,EAAE7C,GAERpB,MAAKkG,IAAIoN,QAAQlS,KAAKmP,WAAa2C,IAAI7R,MAAM8pB,oBAC9CnrB,KAAKkG,IAAIklB,OAAOhqB,KAGfpB,KAAKkG,IAAIoN,QAAQlS,KAAKmP,WAAa2C,IAAI7R,MAAM8pB,oBAAuBlnB,EAAE4a,UAGvE7e,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,KAAM6C,EAAEP,IAAKO,EAAE4a,UAAW5a,EAAE6a,UAAW7a,EAAE8a,OAF1E/e,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,mCAAqC,MAAQhF,EAAEP,IAAM,IAAKO,EAAE4a,UAAW5a,EAAE6a,UAAW7a,EAAE8a,QAYxIM,YAAa,SAAS7X,IAAK9D,IAAK4Q,KACyB,IAAlDtU,KAAKkG,IAAIoN,QAAQtT,KAAKiH,SAASO,MAAM+I,UACtCvQ,KAAKkG,IAAIklB,OAAOprB,KAAKiH,SAASO,MAGjCxH,KAAK8G,KAAKukB,aAAa7jB,IAAK9D,IAAK4Q,MASpCtK,OAAQ,SAAS5I,KAEd,IAAIpB,KAAKkG,IAAIoN,QAAQ+B,eAAejU,MAI/BpB,KAAK4E,QAAQsB,IAAIolB,KAAtB,CAKA,GAAIC,IAAKvrB,KAAK6D,QAAQoB,YAAY,cAC9BsmB,IAAG/S,QAAQpX,KAAO,IACnBmqB,GAAGjjB,KAAKlH,KACRpB,KAAK6D,QAAQ8D,YAAY,UAAW4jB,KAGvCvrB,KAAKkG,IAAIoN,QAAQlS,KAAO,GAAI8R,KAAIlT,KAAK4E,QAAQsB,KAEzClG,KAAK4E,QAAQsB,IAAImkB,sBAClBrqB,KAAKkG,IAAIoN,QAAQlS,KAAKipB,qBAAsB,GAG3CrqB,KAAK4E,QAAQsB,IAAIokB,uBAClBtqB,KAAKkG,IAAIoN,QAAQlS,KAAKkpB,sBAAuB,GAGhDtqB,KAAKkG,IAAIoN,QAAQlS,KAAKqF,GAAG,SAAU,SAAS6J,QACzC,GAAI3M,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,IAAa,OAATuC,KAAJ,CAIA,OAAQ2M,QACL,IAAK4C,KAAI7R,MAAMmqB,kBACZxrB,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,wCAC5C,MACH,KAAKiK,KAAI7R,MAAMoqB,mBACZ9nB,KAAKgd,YAAc3gB,KAAKkG,IAAIoN,QAAQlS,KAAKsqB,cAAc/K,cACvDhd,KAAK4M,SAAW2C,IAAI7R,MAAM8R,kBAE1B,IAAIzP,KAAqCvD,EAAE8I,EAAhCjJ,KAAKkG,IAAIoN,QAAQlS,KAAKoP,MAAY,WAAkB,cAAiB,IAAMrQ,EAAE8I,EAAE,+BAC1FjJ,MAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOsC,IACxC,MACH,KAAKwP,KAAI7R,MAAMsqB,eACZhoB,KAAKgd,YAAc,KAEf3gB,KAAKkG,IAAIoN,QAAQlS,KAAKmP,WAAa2C,IAAI7R,MAAM8pB,oBAG9CxnB,KAAK4M,SAAW2C,IAAI7R,MAAM8pB,mBAC1BnrB,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,mCAK5CtF,KAAK4M,SAAW2C,IAAI7R,MAAM6d,kBAC1Blf,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,sEAE/C,MACH,KAAKiK,KAAI7R,MAAMuqB,kBACZ5rB,KAAK4K,gBAIX5K,KAAK6D,QAAQ8D,YAAY,QAASvG,IAAKuC,MAGvC3D,KAAKkH,IAAI6I,OAAO3O,QAGnBpB,KAAKkG,IAAIoN,QAAQlS,KAAKqF,GAAG,MAAO,SAASkL,KAAMhO,MAC5C,OAAQgO,MACL,IAAK,WAGF,GAFA3R,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,oCAExC9I,EAAE,gBAAgBwG,OAAS,EAAG,CAC/B3G,KAAKkG,IAAIoN,QAAQlS,KAAKyqB,GAAGC,OACzB,OAGH9rB,KAAKkG,IAAI6lB,cAAc3qB,IAAKuC,MAC5B3D,KAAK6D,QAAQ8D,YAAY,OAASvG,KAC/BuC,KAAMA,MAAQ,MAGjB,MACH,KAAK,QACF3D,KAAKkG,IAAIoN,QAAQlS,KAAKoP,MAAQ7M,KAC9B3D,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,QAASuC,MACnD3D,KAAKkG,IAAIklB,OAAOhqB,KAChBpB,KAAKkH,IAAI6I,OAAO3O,KAEZuC,KACD3D,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,iCAE5CjJ,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,0BAE/CjJ,KAAK6D,QAAQ2T,eAAe,OAASpW,KACrCpB,KAAKkH,IAAI2L,OAAOW,OAChB,MACH,KAAK,QACFxT,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,0BAC5C,MACH,SACGjJ,KAAKyD,MAAM,oCAAsCkO,SAK1D3R,KAAKkG,IAAIoN,QAAQlS,KAAKqF,GAAG,KAAM,SAAS/C,IAAKmb,UAAWmN,MACrDhsB,KAAKkG,IAAIglB,gBACN9pB,IAAKA,IACLsC,IAAKA,IACLmb,UAAWA,aAAc,EACzBE,MAAOiN,KAAKjN,MACZD,UAAWkN,KAAKlN,cAKtB9e,KAAKkG,IAAIoN,QAAQlS,KAAKqF,GAAG,KAAM,SAAS/C,IAAK4Q,KAC1C,GAAI9M,KAAMxH,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,QAAU3D,KAAKkG,IAAIoN,QAAQlS,KAAKoG,GAExExH,MAAKkG,IAAIoN,QAAQlS,KAAKoG,IAAMA,IAE5BxH,KAAKkG,IAAImZ,YAAY7X,IAAK9D,IAAK4Q,OAGlCtU,KAAKkG,IAAIoN,QAAQlS,KAAKqF,GAAG,QAAS,SAASpC,KAE5B,qCAARA,KACDrE,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAO,SAAWjB,EAAE8I,EAAE5E,MAG1DrE,KAAK0E,MAAM,SAAWL,OAGzBrE,KAAKkG,IAAItF,QAAQQ,OAUpB2qB,cAAe,SAAS3qB,IAAKuC,MAC1B3D,KAAKkH,IAAI+L,iBAAiB7R,KAE1BjB,EAAE,uBAAuB2S,KAAK,gBAAkBnP,KAAO,EAAI,GAAIyP,SAC/DjT,EAAE,4BAA4B6L,OAE1BrI,MACDxD,EAAE,4BAA4BkM,KAAK,eAAehE,IAAI1E,MAAMmP,KAAK,YAAY,GAC7E3S,EAAE,4BAA4BkM,KAAK,aAAaF,KAAK,UACrDhM,EAAE,4BAA4BkM,KAAK,qBAAqBF,KAAKhM,EAAE8I,EAAE,0CAA4C,IAAM9I,EAAE8I,EAAE,iCAAmC9I,EAAE8I,EAAE,uCAE9J9I,EAAE,4BAA4BkM,KAAK,qBAAqBF,KAAKhM,EAAE8I,EAAE,0CAA4C,IAAM9I,EAAE8I,EAAE,iCAAmC9I,EAAE8I,EAAE,qBAGjK9I,EAAE,4BAA4BmM,MAAM,WACjCtM,KAAK6D,QAAQ2T,eAAe,OAASpW,KAEjCpB,KAAKK,QACNL,KAAKkG,IAAIoN,QAAQlS,KAAKyqB,GAAGC,WAalChY,WAAY,SAAS1S,IAAKuS,IAAKC,OAC5B5T,KAAK4K,gBAEL5K,KAAKkG,IAAIoN,QAAQlS,KAAK6qB,UAAUtY,IAAKC,OAAS,KASjDwJ,eAAgB,SAAShc,KACkC,IAApDpB,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKmP,SACxCvQ,KAAKkG,IAAIgmB,UAAU9qB,KAEnBpB,KAAKkG,IAAIimB,QAAQ/qB,MAUvB8qB,UAAW,SAAS9qB,KACbpB,KAAKK,OACNL,KAAKkG,IAAIoN,QAAQlS,KAAKgrB,eAEtBpsB,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,cAAe,IAW/D+qB,QAAS,SAAS/qB,IAAKirB,IAChBrsB,KAAKK,QACNL,KAAKkG,IAAIoN,QAAQlS,KAAKkrB,OAAOvkB,KAAK/H,KAAKkG,IAAIoN,QAAQlS,KAAMirB,IACzDrsB,KAAKkG,IAAIoN,QAAQlS,KAAKuD,KAAKoD,KAAK/H,KAAKkG,IAAIoN,QAAQlS,MAEjDpB,KAAKkG,IAAIklB,OAAOhqB,MAEhBpB,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,cAAe,IAS/DgqB,OAAQ,SAAShqB,KACd,GAAImb,GAAIvc,KAAKkG,IAAIoN,QAAQlS,KACrBkjB,IAEJ,IAAU,OAAN/H,EAAJ,CAKA,GAEI7O,GAFA6e,SAAY,MAAO,mBAAoB,WAAY,YAAa,WAAY,UAAW,cAAe,cAAe,qBAAsB,SAAU,aAAc,YAAa,WAAY,YAAa,aAAc,QAAS,gBAAiB,OAAQ,oBAAqB,YAAa,gBAG/R,KAAK7e,EAAI,EAAGA,EAAI6e,QAAQ5lB,OAAQ+G,IAC7B4W,EAAEiI,QAAQ7e,IAAMpJ,KAAKC,UAAUgY,EAAEgQ,QAAQ7e,IAGpB,QAApB6O,EAAEmP,gBACHpH,EAAEoH,cAAgBpnB,KAAKC,UAAUgY,EAAEmP,cAAcc,eAGhDjQ,EAAEkQ,IAAIC,aAAqC,KAAtBnQ,EAAEkQ,IAAIC,cAC5BpI,EAAEoI,YAAcpoB,KAAKC,UAAUgY,EAAEkQ,IAAIC,cAGxC1sB,KAAK6D,QAAQ8D,YAAY,MAAOvG,IAAKkjB,KAQxC1jB,QAAS,SAASQ,KACf,GAAImb,GAAIvc,KAAKkG,IAAIoN,QAAQlS,KACrB6C,EAAIjE,KAAK6D,QAAQoB,YAAY,MAAO7D,IAExC,IAAU,OAANmb,GAAoB,OAANtY,EAAY,CAC3B,GAAIc,IACJ,KAAKA,MAAOd,GACT,GAAIA,EAAEoR,eAAetQ,KAAM,CACxB,GAAIsD,KAAM/D,KAAKqoB,MAAM1oB,EAAEc,KACX,mBAARA,KAAmC,OAARsD,MAC5BA,IAAMukB,IAAIC,YAAYxkB,MAEb,gBAARtD,KAAiC,OAARsD,IAC1BkU,EAAEkQ,IAAIC,YAAcrkB,IAEpBkU,EAAExX,KAAOsD,IAKlBrI,KAAKkG,IAAIoN,QAAQlS,KAAOmb,EAEL,IAAfA,EAAEhM,UAAsC,OAApBgM,EAAEmP,eACvBnP,EAAEuQ,QAAQ/kB,KAAK/H,KAAKkG,IAAIoN,QAAQlS,MAItCpB,KAAKkG,IAAI2D,OAAOzI,MAQnB0I,UAAW,WACR,IAAI9J,KAAK4E,QAAQsB,IAAIolB,KAIrB,GAAwC,OAApCtrB,KAAK6D,QAAQoB,YAAY,OAAiB,CAC3C,GAAIvB,KAAMvD,EAAE8I,EAAE,8BACV8jB,OAAS,IAEb,IAAIC,OAGD,IACGD,OAAS,GAAIC,QAAOhtB,KAAK4E,QAAQ4b,KAAO,mCACzC,MAAOnc,KACNrE,KAAKyE,KAAK,8BAAgCJ,KAIhDrE,KAAKkG,IAAI+kB,YAA0B,OAAX8B,OAEnB/sB,KAAKkG,IAAI+kB,aA0BXjrB,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,YAAa,KAAMpB,MAC3DuQ,SAAS,IAGZjU,KAAKyD,MAAM,6BAGX8G,WAAW,WACR,GAAI0iB,KAAM,GAAIL,IACd5sB,MAAKkG,IAAIgnB,SAASD,MAClB,OAjCHjtB,KAAK+J,YAELgjB,OAAOI,UAAY,SAASC,GACzB,GAAIzb,MAAOyb,EAAEzpB,KAAKgO,KACdtJ,IAAM+kB,EAAEzpB,KAAK0E,GAEJ,WAATsJ,KACD3R,KAAKyD,MAAM4E,KACM,SAATsJ,MACR3R,KAAKkG,IAAIgnB,SAASN,IAAIS,aAAahlB,OAKzC0kB,OAAOtZ,aACJ6Z,SAAWttB,KAAK4E,QAAQ4b,KAAO,6BAA8BxgB,KAAK4E,QAAQ4b,KAAO,4BAA6BxgB,KAAK4E,QAAQ4b,KAAO,4BAA6BxgB,KAAK4E,QAAQ4b,KAAO,kCAAmCxgB,KAAK4E,QAAQ4b,KAAO,wBAAyBxgB,KAAK4E,QAAQ4b,KAAO,0BAA2BxgB,KAAK4E,QAAQ4b,KAAO,uBACtUxH,KAAMuU,OAAOC,UACb/pB,OAAO,SAmBbzD,MAAKyD,MAAM,kBACXzD,KAAK4E,QAAQsB,IAAIolB,KAAOsB,IAAIS,aAAartB,KAAK6D,QAAQoB,YAAY,QAElEjF,KAAKkG,IAAIunB,cAOfA,WAAY,WAETztB,KAAK6D,QAAQ8D,YAAY,mBAAoB3H,KAAK4E,QAAQsB,IAAIolB,KAAK3K,eAE/D3gB,KAAKkG,IAAI+kB,eAAgB,GAC1BjrB,KAAK+J,aASXmjB,SAAU,SAASD,KAChBjtB,KAAK6D,QAAQ8D,YAAY,MAAOslB,IAAIS,eACpC1tB,KAAK4E,QAAQsB,IAAIolB,KAAO2B,IAGpBjtB,KAAKkG,IAAI+kB,YACVjrB,KAAKkH,IAAI2L,OAAOW,QAEhBrT,EAAEgI,KAAKnI,KAAK6D,QAAQoB,YAAY,cAAe,SAASmD,MAAOC,KAC5DrI,KAAKkG,IAAI8D,OAAO3B,OAItBrI,KAAKkG,IAAIunB,cAGZ5jB,OAAQ,SAASzI,KACdpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKiL,KAAK,aAAa+D,YAAY,mBAW1DpQ,KAAK6D,SAMF8pB,OAAQ,OAERC,IAAK,IAOLC,UAAW,SAASC,IACjB,GAAIjhB,MAAO7M,KAAK6D,OAEhB,OAAOgJ,MAAK8gB,OAAS9gB,KAAK+gB,KAAQE,IAAM9tB,KAAKoB,IAAOpB,KAAKoB,IAAMyL,KAAK+gB,IAAM,KAW7EjkB,QAAS,SAAS5E,IAAKI,MAAO2oB,IAGvB9tB,KAAKkB,kBAAoB,GAAa,QAAR6D,KAAyB,iBAARA,MAC5C/E,KAAKkB,kBAAoB,GAAoB,OAAflB,KAAKmB,QACpCnB,KAAKmB,MAAQgF,OAAOoE,WAAW,WAC5BvK,KAAKkB,kBAAoB,EACzBlB,KAAK6D,QAAQ8F,QAAQ,oBAAqB,IAC1C,MAGN3J,KAAKiB,GAAGqH,KAAKhE,KAAKC,WACfQ,IAAKA,IACLI,MAAOA,UAIU,gBAAZ,SACRA,MAAQb,KAAKC,UAAUY,QAG1B4oB,aAAapkB,QAAQ3J,KAAK6D,QAAQgqB,UAAUC,IAAM/oB,IAAKI,QAG1DwC,YAAa,SAASgK,KAAM5M,IAAKI,OAC9B,GAAI0H,MAAO7M,KAAK6D,OAUhB,OARyB,KAArBkJ,UAAUpG,QACXxB,MAAQJ,IACRA,IAAM4M,KACNA,KAAO,IACsB,IAArB5E,UAAUpG,SAClB5B,IAAM4M,KAAO9E,KAAK+gB,IAAM7oB,KAGpB/E,KAAK6D,QAAQ8F,QAAQ5E,IAAKI,OAAO,IAU3CrB,QAAS,SAASiB,IAAK+oB,IACpB/oB,IAAM/E,KAAK6D,QAAQgqB,UAAUC,IAAM/oB,GAEnC,IAAII,OAAQ4oB,aAAajqB,QAAQiB,IACjC,KACG,MAAOT,MAAKqoB,MAAMxnB,OACnB,MAAOioB,GACN,MAAOjoB,SAUbF,YAAa,SAAS0M,KAAM5M,KACzB,GAAI8H,MAAO7M,KAAK6D,OAQhB,OANyB,KAArBkJ,UAAUpG,OACX5B,IAAM4M,KACuB,IAArB5E,UAAUpG,SAClB5B,IAAM4M,KAAO9E,KAAK+gB,IAAM7oB,KAGpB/E,KAAK6D,QAAQC,QAAQiB,KAAK,IAUpCipB,WAAY,SAASjpB,IAAK+oB,IAGnB9tB,KAAKkB,mBAA6B,QAAR6D,KAAyB,iBAARA,KAC5C/E,KAAKiB,GAAGqH,KAAKhE,KAAKC,WACfQ,IAAK/E,KAAK6D,QAAQoqB,OAASlpB,IAC3BI,MAAO,MAIb4oB,aAAaC,WAAWhuB,KAAK6D,QAAQgqB,UAAUC,IAAM/oB,MAQxDyS,eAAgB,SAAS7F,KAAM5M,KAC5B,GAAI8H,MAAO7M,KAAK6D,OAES,KAArBkJ,UAAUpG,OACX5B,IAAM4M,KACuB,IAArB5E,UAAUpG,SAClB5B,IAAM4M,KAAO9E,KAAK+gB,IAAM7oB,KAG3B/E,KAAK6D,QAAQmqB,WAAWjpB,KAAK,IAahCK,WAAY,SAASL,IAAKmpB,SAAU/oB,MAAO2oB,IAExC,GAAInqB,MAAO3D,KAAK6D,QAAQC,QAAQiB,IAAK+oB,OAEX,iBAAf,UAER3tB,EAAEgI,KAAK+lB,SAAU,SAASnpB,IAAKsD,KACD,mBAAf1E,MAAKoB,MACd/E,KAAKyD,MAAM,YAAcsB,IAAM,qBAAwBmpB,SAAW,qBAGrEvqB,KAAKoB,KAAOsD,OAGiB,mBAApB1E,MAAKuqB,WACdluB,KAAKyD,MAAM,YAAcyqB,SAAW,mCAGvCvqB,KAAKuqB,UAAY/oB,OAGpBnF,KAAK6D,QAAQ8F,QAAQ5E,IAAKpB,KAAMmqB;EAWnCva,eAAgB,SAAS5B,KAAM5M,IAAKmpB,SAAU/oB,OAC3C,GAAI0H,MAAO7M,KAAK6D,OAUhB,OARyB,KAArBkJ,UAAUpG,QAAsC,IAArBoG,UAAUpG,QAAoC,gBAAbunB,UAC7DnpB,IAAM4M,KAAO9E,KAAK+gB,IAAM7oB,KAExBI,MAAQ+oB,SACRA,SAAWnpB,IACXA,IAAM4M,MAGF3R,KAAK6D,QAAQuB,WAAWL,IAAKmpB,SAAU/oB,OAAO,IAUxDqF,IAAK,SAASzF,IAAK+oB,IAEhB9tB,KAAK6D,QAAQ8F,QAAQ5E,IAAKopB,OAAOnuB,KAAK6D,QAAQC,QAAQiB,IAAK+oB,KAAO,EAAGA,KAWxEM,cAAe,SAASrpB,IAAK6J,KAAMkf,IAChC,GAAI5X,MAAOlW,KAAK6D,QAAQC,QAAQiB,IAAK+oB,GAEjC3tB,GAAEkuB,QAAQnY,MACXA,KAAO/V,EAAEmuB,KAAKpY,KAAM,SAASkX,GAC1B,MAAOA,KAAMxe,OAEU,gBAAX,aACRsH,MAAKtH,MAGf5O,KAAK6D,QAAQ8F,QAAQ5E,IAAKmR,KAAM4X,KAGnC7S,kBAAmB,SAAStJ,KAAM5M,IAAK6J,MACpC,GAAI/B,MAAO7M,KAAK6D,OAShB,OAPyB,KAArBkJ,UAAUpG,QACXiI,KAAO7J,IACPA,IAAM4M,MACuB,IAArB5E,UAAUpG,SAClB5B,IAAM4M,KAAO9E,KAAK+gB,IAAM7oB,KAGpB/E,KAAK6D,QAAQuqB,cAAcrpB,IAAK6J,MAAM,IAahDvI,UAAW,SAAS+mB,GAGjB,GAAIA,EAAEroB,MAAQ/E,KAAK6D,QAAQ8pB,OAAS3tB,KAAK6D,QAAQ+pB,IAAM,OAASR,EAAEroB,MAAQ/E,KAAK6D,QAAQ8pB,OAAS3tB,KAAK6D,QAAQ+pB,IAAM,eAAnH,CAIA,GAAIW,IAAK,GAAIvsB,QAAO,IAAMhC,KAAK6D,QAAQ8pB,OAAS3tB,KAAK6D,QAAQ+pB,IAAM,QAAU5tB,KAAK6D,QAAQ+pB,IAAM,QAAU5tB,KAAK6D,QAAQ+pB,IAAM,KAAO5tB,KAAK6D,QAAQ+pB,IAAM,SAAU,KAC7J7oB,IAAMqoB,EAAEroB,IAAI0G,QAAQ8iB,GAAI,KAI5B,IAAIvuB,KAAKkB,kBAAoB,GAAKlB,KAAKiB,GAAG0F,OAAS,EAAG,CAEnD,GAAI0B,KAAM+kB,EAAEoB,QACZ,KACGnmB,IAAM/D,KAAKqoB,MAAMtkB,KAClB,MAAOhE,MAGT,GAAI+D,OAAQjI,EAAE6d,QAAQ1Z,KAAKC,WACxBQ,IAAKA,IACLI,MAAOkD,MACNrI,KAAKiB,GAET,IAAImH,OAAS,EAUV,MAPIpI,MAAKkB,kBAAoB,IAC1BiF,OAAO0E,aAAa7K,KAAKmB,OACzBnB,KAAKkB,kBAAoB,EACzBlB,KAAK6D,QAAQ8F,QAAQ,oBAAqB,QAG7C3J,MAAKiB,GAAGkjB,OAAO/b,MAAO,GAM5B,GAAIglB,EAAEqB,WAAarB,EAAEoB,SAArB,CAIA,GAAIE,GAAGnS,EACHnb,IAAM2D,IAAI0G,QAAQ,GAAIzJ,QAAO,KAAOhC,KAAK6D,QAAQ+pB,IAAM,KAAO5tB,KAAK6D,QAAQ+pB,IAAM,OAAQ,KAAM,KAGnG,IAAI5tB,KAAKK,QAAkB,UAAR0E,IAIhB,MAHA/E,MAAKyD,MAAM,uBAEXzD,MAAK6D,QAAQ2G,IAAI,QAKpB,MAAKxK,KAAKK,QAAmB,UAAR0E,KAA2B,eAARA,KAA0B/E,KAAKe,sBAWpE,MARAoF,QAAO0E,aAAa7K,KAAKO,IACzBP,KAAKO,GAAK4F,OAAOoE,WAAWvK,KAAKmH,aAAuB,UAARpC,IAAmB/E,KAAK4E,QAAQ+F,QAAU3K,KAAK4E,QAAQmG,aAAe/K,KAAKgL,OAAO,UAG7HhL,KAAKM,iBACPN,KAAKuJ,UAwCX,IAlCIxE,IAAIqE,MAAM,aACXpJ,KAAKma,OAAOC,OAGXrV,IAAIqE,MAAM,cACXpJ,KAAKkH,IAAIuQ,eAAe2V,EAAEoB,UAAU,GAGnCzpB,IAAIqE,MAAM,aAAegkB,EAAEoB,WAC5BE,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEiB,mBAAvBE,GAAE3D,kBAAoC2D,EAAE3D,iBAChD/qB,KAAKkK,aAAa4N,WAAU,GAE5B9X,KAAKkK,aAAa6N,aAAY,IAIhChT,IAAIqE,MAAM,aACPpJ,KAAKK,OACNwK,aAAa7K,KAAKS,gBAElBT,KAAKgN,YAIPjI,IAAIqE,MAAM,YACPpJ,KAAKK,OACNwK,aAAa7K,KAAKS,gBAElBT,KAAKqN,YAIPtI,IAAIqE,MAAM,GAAIpH,QAAO,QAAUhC,KAAK6D,QAAQ+pB,MAK7C,IAHA,GACIjqB,MAAMiN,GADN+d,MAAQrqB,KAAKqoB,MAAMS,EAAEoB,UAGlBG,MAAMhoB,OAAS,GACnBhD,KAAOgrB,MAAMzO,MACbtP,GAAKzQ,EAAE,IAAMwD,KAAK2Q,KAEA,IAAd1D,GAAGjK,QACA3G,KAAKK,QAA6B,QAAnBsD,KAAKib,WACrB5e,KAAK8G,KAAKuY,YAAYje,IAAKuC,KAAKD,IAAKC,KAAK2Q,KAG7CtU,KAAKkH,IAAIf,OAAOmZ,aAAale,IAAKuC,OAC1BA,KAAKmc,UACblP,GAAGP,SAAS,qBAhBrB,CAsBA,GAAItL,IAAIqE,MAAM,GAAIpH,QAAO,UAAYhC,KAAK6D,QAAQ+pB,MAE/C,MAAKR,GAAEoB,SAKFpB,EAAEqB,UAKPC,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEbE,EAAE3iB,SACH/L,KAAKkH,IAAIf,OAAOsY,MAAMrd,KAEtBpB,KAAKkH,IAAIf,OAAOoY,MAAMnd,SAGzBpB,MAAKkH,IAAIf,OAAO+F,QAAQ9K,IAAKstB,EAAEviB,WAZ5BnM,MAAKkH,IAAIf,OAAOmI,KAAKlN,SALrBpB,MAAKkH,IAAIf,OAAO+U,OAAO9Z,IAsB7B,IAAI2D,IAAIqE,MAAM,GAAIpH,QAAO,OAAShC,KAAK6D,QAAQ+pB,MAAO,CAEnD,IAAKR,EAAEoB,SAQJ,MANAxuB,MAAKkH,IAAI2L,OAAOW,aAEZxT,KAAKK,QACNL,KAAKkG,IAAIoN,QAAQlS,KAAKyqB,GAAGC,QAM/B4C,GAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEO,mBAAZE,GAAM,KAEf1uB,KAAKkG,IAAI6lB,cAAc3qB,IAAKstB,EAAE/qB,MAEtB3D,KAAKK,QAAUquB,EAAE/a,MACzB3T,KAAKkH,IAAI2L,OAAOW,QAEhBxT,KAAKkG,IAAI4N,WAAW1S,IAAKstB,EAAE/a,IAAK+a,EAAE9a,QAIxC,IAAK5T,KAAKK,QAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,SAAWhC,KAAK6D,QAAQ+pB,MAAO,CAErE,IAAKR,EAAEoB,SAEJ,WADAxuB,MAAKkH,IAAIU,OAAOoT,MAAM5Z,IAGzB,KAAKgsB,EAAEqB,SAEJ,WADAzuB,MAAKkH,IAAIU,OAAOgE,IAAIxK,IAIvBstB,GAAIpqB,KAAKqoB,MAAMS,EAAEoB,UACjBjS,EAAIjY,KAAKqoB,MAAMS,EAAEqB,UAEjBzuB,KAAKkH,IAAI6I,OAAO3O,MAEZmb,EAAEjM,SAAWoe,EAAEpe,QAAUiM,EAAE9L,MAAQie,EAAEje,MACtCzQ,KAAKkH,IAAIU,OAAOkT,QAAQ1Z,KAiC9B,GA7BIpB,KAAKK,QAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,eAAiBhC,KAAK6D,QAAQ+pB,OAASR,EAAEoB,WAC9EE,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEjBxuB,KAAK8G,KAAK+N,YAAY6Z,EAAElnB,KACxBxH,KAAK6D,QAAQ2T,eAAezS,MAG3B/E,KAAKK,QAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,SAAWhC,KAAK6D,QAAQ+pB,QAE7Dc,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UACjBjS,EAAIjY,KAAKqoB,MAAMS,EAAEqB,UAEblS,EAAEqS,cAAgBF,EAAEE,cACrB5uB,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAK,cAAe,IAEnC,IAAlBstB,EAAEE,aACH5uB,KAAKkG,IAAIimB,QAAQ/qB,KAEE,IAAlBstB,EAAEE,aACH5uB,KAAKkG,IAAIgmB,UAAU9qB,MAIrBmb,EAAE3N,OAAS8f,EAAE9f,MACd5O,KAAKkH,IAAIU,OAAO2T,QAAQna,IAAKstB,EAAE9f,OAKzB,QAAR7J,IASD,YARKqoB,EAAEoB,UAKJxuB,KAAK8G,KAAKF,SAMJ,eAAR7B,MACD2pB,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEbxuB,KAAKK,QAAUquB,EAAEG,SAAW,GAC7B7uB,KAAK8G,KAAKqN,aAAaua,EAAElnB,IAAKknB,EAAEG,UAIlC7uB,KAAKK,QAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,OAAShC,KAAK6D,QAAQ+pB,QAC3Dc,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEjBxuB,KAAK8G,KAAK8N,SAAS8Z,EAAE7lB,SAAU6lB,EAAEha,QAGxB,WAAR3P,KACD/E,KAAKkH,IAAIU,OAAOmS,SAGf/Z,KAAKK,QAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,SAAWhC,KAAK6D,QAAQ+pB,OAAwB,OAAfR,EAAEoB,UAAqBpB,EAAEoB,SAASplB,MAAM,cAE9GpJ,KAAK8G,KAAKyP,UAAUnV,IAAK,SAASoQ,QAC/BxR,KAAK6D,QAAQ8D,YAAY,QAASvG,KAC/Bgb,MAAO,UACPzY,KAAMxD,EAAE,SAAS4O,OAAOyC,QAAQpN,UAEnC,WACApE,KAAK6D,QAAQ8D,YAAY,QAASvG,KAC/Bgb,MAAO,YAKXpc,KAAKK,SAAU0E,IAAIqE,MAAM,GAAIpH,QAAO,SAAWhC,KAAK6D,QAAQ+pB,OAAwB,OAAfR,EAAEoB,UAAsBpB,EAAEoB,SAASplB,MAAM,eAChHslB,EAAIpqB,KAAKqoB,MAAMS,EAAEoB,UAEM,mBAAZE,GAAEtS,OACVjc,EAAEqG,UAAUkD,QAAQ,oBAAqBglB,GAG5C1uB,KAAK6D,QAAQ2T,eAAe,QAASpW,UAgB3Cge,YAAa,SAAShe,IAAKwd,UAAWlb,IAAKmb,UAAWC,UAAWC,MAAOC,QACrE,GAAIN,MAAO1e,KAAK6D,QAAQoB,YAAY,OAAQ7D,SAExCkT,KAAM,GAAI9R,OAAOgB,UAAY,MAE7Bkb,MAAK/X,OAAS3G,KAAK4E,QAAQE,IAAI,gBAChC4Z,KAAKwB,KAGR,IAAIf,OACDP,UAAWA,UACXlb,IAAKA,IACL4Q,IAAKA,IAAI7I,QAAQ,IAAK,KACtBqU,UAAU,EACVjB,UAAWA,YAAa,EACxBC,UAAWA,YAAa,EACxBC,MAAOA,QAAS,GAAIvc,OAAOgB,UAC3Bwb,OAAQA,OAMX,OAHAN,MAAKoQ,QAAQ3P,MACbnf,KAAK6D,QAAQ8D,YAAY,OAAQvG,IAAKsd,MAE/BS,MAWV5H,UAAW,SAASnW,IAAKuC,MAEtB,MAAI3D,MAAK6D,QAAQoB,YAAY,QAAS7D,MACnCpB,KAAK6D,QAAQ0P,eAAe,QAASnS,IAAKuC,MAEnC,YAGV3D,KAAK6D,QAAQ8D,YAAY,QAASvG,IAAKjB,EAAE0E,QACtC2C,IAAK,GACLoH,KAAM,GACN0B,OAAQ,EACRG,IAAK,OACLF,SAAU,EACVqe,YAAa,GACbpe,OAAO,EACPmQ,YAAa,KACblL,OACA9D,KAAM,QACNhO,OAEI,aAOhB3D,KAAKkH,IAAI8H,SAAS+f,aAAe,6TAMjC/uB,KAAKkH,IAAI8H,SAASggB,iBAAmB,mEAErChvB,KAAKkH,IAAI8H,SAASigB,YAAc,2jEAoD7BjvB,KAAKkvB,QAEF3d,KAAM,KAGN4d,YAAa,KAGbC,aAAc,KAGdC,YAAa,KAGbC,aAAa,EAGbC,kBAAoB,iCAAkC,iCAAkC,uCAAwC,+BAGhIC,YAQA7qB,KAAM,WACH,GAAIkI,MAAO7M,KAAKkvB,MAShB,OANAriB,MAAK0E,KAAOvR,KAAK8G,KAAKyK,KAEF,YAAhBtR,IAAIwvB,UACL5iB,KAAK0E,KAAKme,OAAOC,kBAAkBC,UAAUC,yBAA0B,GAGrEhjB,KAAK0E,KAAKme,QAMf7iB,KAAK0E,KAAKme,OAAOI,UAAW,EAC5BjjB,KAAK0E,KAAKme,OAAOK,YAAa,EAC9BljB,KAAK0E,KAAKme,OAAOM,WAAahwB,KAAK6D,QAAQoB,YAAY,aACvD4H,KAAK0E,KAAKme,OAAOO,YAAa,EAC9BpjB,KAAK0E,KAAKme,OAAOQ,eAAiBjwB,IAAIiwB,eAEtC/vB,EAAEqG,UAAUC,GAAG,eAAgBtG,EAAEgwB,MAAMtjB,KAAKujB,UAAWvjB,OACvD1M,EAAEqG,UAAUC,GAAG,gBAAiBtG,EAAEgwB,MAAMtjB,KAAKqW,WAAYrW,OAEzD1M,EAAEqG,UAAUC,GAAG,oBAAqBtG,EAAEgwB,MAAMtjB,KAAKwjB,aAAcxjB,OAC/D1M,EAAEqG,UAAUC,GAAG,sBAAuBtG,EAAEgwB,MAAMtjB,KAAKyjB,eAAgBzjB,OACnE1M,EAAEqG,UAAUC,GAAG,sBAAuBtG,EAAEgwB,MAAMtjB,KAAK0jB,eAAgB1jB,OACnE1M,EAAEqG,UAAUC,GAAG,wBAAyBtG,EAAEgwB,MAAMtjB,KAAK2jB,iBAAkB3jB,OACvE1M,EAAEqG,UAAUC,GAAG,iBAAkBtG,EAAEgwB,MAAMtjB,KAAK4jB,cAAe5jB,OAE7D1M,EAAEqG,UAAUC,GAAG,2BAA4BtG,EAAEgwB,MAAMtjB,KAAK6jB,oBAAqB7jB,OAC7E1M,EAAEqG,UAAUC,GAAG,6BAA8BtG,EAAEgwB,MAAMtjB,KAAK8jB,sBAAuB9jB,OACjF1M,EAAEqG,UAAUC,GAAG,kCAAmCtG,EAAEgwB,MAAMtjB,KAAK+jB,4BAA6B/jB,OAC5F1M,EAAEqG,UAAUC,GAAG,0BAA2BtG,EAAEgwB,MAAMtjB,KAAKgkB,iBAAkBhkB,OAEzE1M,EAAEqG,UAAUC,GAAG,eAAgB,SAAS2I,GAAI0hB,IAAKpsB,OAC9C1E,KAAK0E,MAAM,WAAYA,SAGtBmI,KAAK0E,KAAKiS,OACX3W,KAAK0E,KAAKiS,MAAMuN,WAAW,+BAG1BlkB,KAAK0E,KAAKyf,MACX7wB,EAAEqG,UAAUC,GAAG,eAAgBtG,EAAEgwB,MAAMtjB,KAAKokB,OAAQpkB,WAGvDA,MAAKqkB,2BArCFlxB,MAAK0E,MAAM,4BA6CjBwsB,oBAAqB,WAElB,IAAKlxB,KAAK4E,QAAQusB,oBAEf,WADAnxB,MAAKyD,MAAM,wCAId,IAAI2tB,MAAOpxB,KAAK6D,QAAQoB,YAAY,gBAAkB,IAAK,GAAKzC,OAAQgB,SACxE,OAAI4tB,KAAM,MAGPjrB,QAAOoE,WAAWvK,KAAKkvB,OAAOgC,oBAAqBE,IAAM,SAI5DjxB,GAAEkxB,KAAKrxB,KAAK4E,QAAQusB,qBACjBG,OAAO,EACPC,QAAS,SAAS5tB,MACf,GAAI6tB,YACDC,aACGlS,IAAK,QAAU5b,KAAK4b,IACpBmS,WAAY/tB,KAAK+tB,WACjB7oB,SAAUlF,KAAKkF,WAIrB7I,MAAKkvB,OAAO3d,KAAKme,OAAOM,WAAawB,UACrCxxB,KAAK6D,QAAQ8D,YAAY,YAAa6pB,WACtCxxB,KAAK6D,QAAQ8D,YAAY,eAAe,GAAKnF,OAAQgB,UAAY,IAAOG,KAAKytB,MAEhFO,SAAU,UAWhBC,cAAe,SAASpqB,KACrB,GAAIqF,MAAO7M,KAAKkvB,OACZ9tB,IAAMpB,KAAKiH,SAASO,KACpBiO,IAAMzV,KAAK6D,QAAQoB,YAAY,MAAO7D,SAEtCywB,YAOJ,OANA1xB,GAAEgI,KAAKsN,IAAK,SAAS6O,GACdzX,KAAK0E,KAAKyf,KAAKc,gBAAgB1wB,IAAM,IAAMkjB,EAAGzX,KAAK0iB,mBACpDsC,UAAUvpB,KAAKgc,KAIduN,WAaVE,gBAAiB,SAASpU,MAAOvc,IAAKuC,KAAMiN,IACzC,GAAI/D,MAAO7M,KAAKkvB,MAEhB,KAAKriB,KAAK0E,KAIP,WAHApR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrC6F,KAAKklB,gBAAgB,KAAM3wB,IAAKuC,KAAMiN,KAK5C,IAAIohB,WAAY7xB,EAAE,gDAAkDA,EAAE8I,EAAE,oBAAsB,WAE9F+oB,WAAU1lB,MAAM,WAEb,MADAO,MAAKolB,UAAUtuB,KAAK6D,MACb,IAGVoJ,GAAGvE,KAAK,2BAA2B0C,OAAOijB,WAE1CphB,GAAGnK,GAAG,aAAc,WACjBoG,KAAKqlB,WAAW9wB,QAYtB0kB,WAAY,SAASnI,MAAOtP,KACzB,GAAIxB,MAAO7M,KAAKkvB,MAEhB,KAAI7gB,IAAI6J,SAAS,kBAAjB,CAMA,GAFAlY,KAAKyD,MAAM,sBAENoJ,KAAK0E,KAIP,WAHApR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrC6F,KAAKiZ,WAAW,KAAMzX,MAK5B,IAAIqF,KAAMvT,EAAE,SAASkQ,SAAS,aAC9BhC,KAAIhC,KAAK,wBAAwB4Z,MAAMvS,KAEvC7G,KAAKqlB,WAAWlyB,KAAKiH,SAASoH,IAAI1K,KAAK,WAS1CuuB,WAAY,SAAS9wB,KAClBpB,KAAKyD,MAAM,cAAerC,IAE1B,IAAIyL,MAAO7M,KAAKkvB,MAEhB,IAAI9tB,MAAQpB,KAAKiH,SAAS4F,KAAK0E,KAAK/J,KAApC,CAIA,GAAI6G,KAAMrO,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAC1BoG,IAAM6G,IAAI1K,KAAK,QAAU3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKoG,IAEhEoJ,GAAKvC,IAAIhC,KAAK,eAAeT,IAAI5L,KAAKkH,IAAIU,OAAO9D,QAAQ1C,KAAKiL,KAAK,gBAEnE8lB,WAAatlB,KAAK+kB,cAAcpqB,KAChC4qB,UAAY7mB,QAAQub,mBAAmBtf,IAEzB,QAAd4qB,YACDjyB,EAAEgI,KAAKnI,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKqU,QAAW,SAASrN,MAAOC,KACtE,MAAI8pB,YAAW3Z,QAAQnQ,KAAO,IAC3B+pB,UAAY/pB,KACL,GAFV,SAMHb,IAAMA,IAAM,IAAM4qB,WAGrBxhB,GAAG7J,IAAI,SAEHorB,WAAW3Z,QAAQ4Z,WAAa,IACjCxhB,GAAGtE,MAAM,WACNO,KAAKolB,UAAUzqB,OAGlBoJ,GAAGR,YAAY,iBAEfQ,GAAGd,KAAK,QAAS3P,EAAE8I,EAAE,uBAErB2H,GAAGP,SAAS,iBAEZO,GAAGd,KAAK,QAAS3P,EAAE8I,EAAE,+BAY3BmnB,UAAW,SAAShD,EAAGpZ,MACpB,GAAInH,MAAO7M,KAAKkvB,OACZ9tB,IAAMpB,KAAKiH,SAAS+M,KAExBhU,MAAKyD,MAAM,mBAAoBuQ,MAE3BnH,KAAK2iB,SAASpuB,OAAS4S,OACxBnH,KAAKqlB,WAAW9wB,KAChByL,KAAK2iB,SAASpuB,KAAO4S,OAY3BkP,WAAY,SAAS9T,GAAI5H,KACtB,GAAIqF,MAAO7M,KAAKkvB,MAEhBlvB,MAAKyD,MAAM,oBAAqB+D,KAEhCqF,KAAKqlB,WAAWlyB,KAAKiH,SAASO,OAUjC6qB,UAAW,SAASC,IAAKruB,GACtB,GAAIqM,QAASnQ,EAAE,6BACX2b,SAAyB,mBAAN7X,IAA2B,OAANA,EAAc,IAAOA,CAuBjE,IArBAjE,KAAKyD,MAAM,WAAY6uB,KAEnBhiB,OAAOlM,SAERkuB,IAAMhiB,OAAOlM,OAAS,SAAWkuB,KAGpChiB,OAAOlM,KAAKkuB,KAEZhiB,OAAOa,KACJohB,cAAe,IAAOjiB,OAAOsB,QAAU,EAAK,KAC5CsI,QAAS,EACTsY,QAAS,UAGZliB,OAAOmiB,OAAOpW,SACXnC,QAAS,IAGZrP,aAAayF,OAAO3M,KAAK,YAER,IAAbmY,SAAJ,CAIA,GAAIvb,IAAKgK,WAAW,WACjB+F,OAAOmiB,OAAOpW,SACXnC,QAAS,GACT,WACA5J,OAAOlM,KAAK,OAEf0X,SAEHxL,QAAO3M,KAAK,UAAWpD,MAW1B0wB,OAAQ,SAAStT,MAAOnW,KACrB,GAAIqF,MAAO7M,KAAKkvB,MAEhBriB,MAAKqlB,WAAWlyB,KAAKiH,SAASO,OAWjC6oB,aAAc,SAAS1S,MAAO+U,QAC3B1yB,KAAKyD,MAAM,cAEX,IAAIoJ,MAAO7M,KAAKkvB,MAEhBriB,MAAKsiB,YAAcuD,OACnB7lB,KAAK0E,KAAKme,OAAOP,YAAcuD,OAE/B1yB,KAAKkH,IAAIyrB,gBAAgB9lB,KAAKwiB,YAE9B,IAAI3hB,EACJ,KAAKA,EAAI,EAAGA,EAAIglB,OAAOE,iBAAiBjsB,OAAQ+G,IAC7Cb,KAAKwlB,UAAWK,OAAOE,iBAAiBjsB,OAAS,EAAK,0BAA4B,0BAElF3G,KAAKyD,MAAM,uBAAyBivB,OAAOE,iBAAiBllB,GAAGmlB,MAAQ,IAE1E,KAAKnlB,EAAI,EAAGA,EAAIglB,OAAOI,iBAAiBnsB,OAAQ+G,IAC7Cb,KAAKwlB,UAAWK,OAAOI,iBAAiBnsB,OAAS,EAAK,0BAA4B,0BAElF3G,KAAKyD,MAAM,uBAAyBivB,OAAOI,iBAAiBplB,GAAGmlB,MAAQ,KACvE1yB,EAAE,iCAAiC8L,MAGtC9L,GAAEqG,UAAUQ,IAAI,sBAAuB7G,EAAEgwB,MAAMtjB,KAAKkmB,OAAQlmB,OAC5D1M,EAAEqG,UAAUkD,QAAQ,2BASvB4mB,eAAgB,SAASlhB,GAAI/K,KAC1BwC,KAAKwrB,UAAU,iBAEfryB,KAAKkH,IAAIf,OAAOsN,YAAYzT,KAAKiH,SAASjH,KAAKkvB,OAAOG,aAAc,MAAOlvB,EAAE8I,EAAE,iBAAmB5E,IAAIuK,MACtG5O,KAAKyD,MAAM,kBAAoBY,IAAIuK,OAWtC2hB,eAAgB,SAAS5S,MAAOmT,KAC7B9wB,KAAKyD,MAAM,gBAAkBqtB,IAE7B,IAAIjkB,MAAOhG,KACPmsB,KAAOnsB,KAAK0K,KAAKme,OAAOuD,SAASnC,KACjC1vB,IAAMpB,KAAKiH,SAAS+rB,KAAKE,QA4B7B,IA1BAlzB,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAOjB,EAAE8I,EAAE,kBAG5CjJ,KAAKkK,aAAa6e,OAAO5oB,EAAE8I,EAAE,iBAAkB9I,EAAE8I,EAAE,QAAU,IAAM7H,KAGnE4xB,KAAKG,cAELnzB,KAAKkvB,OAAOG,YAAc2D,KAAKE,QAE/BlzB,KAAKyM,cACF2mB,oBAAqB,SAASzV,MAAO+U,QAClC7lB,KAAKwlB,UAAU,eAEfW,KAAK7D,YAAcuD,OACnBM,KAAKK,eAAeC,UAAUZ,QAE9BM,KAAKO,aACLP,KAAKQ,UAERC,sBAAuB,WACpBT,KAAKU,cAAc,WACnBV,KAAKW,eAIP3zB,KAAKkvB,OAAOI,YAEb,WADAziB,MAAK+mB,cAIR,IAAI/gB,QAAS7S,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,eAAgB1D,MACrE6S,SAAS,GAGZpB,QAAOxG,KAAK,gBAAgBC,MAAM,WAC/BnM,EAAEqG,UAAUkD,QAAQ,oBAEpBmD,KAAK+mB,iBAGR/gB,OAAOxG,KAAK,gBAAgBC,MAAM,WAC/BtM,KAAKkH,IAAI2L,OAAOW,QAChBrT,EAAEqG,UAAUkD,QAAQ,oBAEpBspB,KAAKU,cAAc,WACnBV,KAAKW,eAcXnD,iBAAkB,SAAS7S,MAAOmT,IAAKzI,OAAQlc,MAC5CtF,KAAKwrB,UAAU,mBAAqBvB,KAAOzI,OAAU,KAAOA,OAAS,IAAMlc,KAAQ,IAEnF,IAAI/K,KAAMpB,KAAKiH,SAASjH,KAAKkvB,OAAOG,YAEhCxoB,MAAKsoB,aACNtoB,KAAKsoB,YAAYsD,OAGhBtyB,EAAE,wBAAwBwG,SAC3BxG,EAAE,qBAAqB,GAAG4Q,IAAM,GAChC5Q,EAAE,oBAAoB,GAAG4Q,IAAM,IAGlClK,KAAK0K,KAAKme,OAAOP,YAAc,KAC/BtoB,KAAKsoB,YAAc,KACnBtoB,KAAKuoB,aAAe,IAEpB,IAAI/gB,KAAMlO,EAAE,wCACZA,GAAE,yBAAyB+D,QAAQmK,IAAI0M,UACvC1M,IAAIhC,KAAK,kBAAkBkR,UAAU,UAErCpd,EAAEqG,UAAUO,IAAI,uBAChB5G,EAAEqG,UAAUO,IAAI,gBAChB/G,KAAKkH,IAAI2L,OAAOW,QAEhBxT,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,MAAQjB,EAAE8I,EAAE,oBAAsBof,OAAU,KAAOloB,EAAE8I,EAAEof,QAAW,IAAM,MAS5GoI,cAAe,WACZ5pB,KAAKwrB,UAAU,aAAc,IAYhC3B,oBAAqB,SAAS/S,MAAOha,KAAMmtB,KACxCjqB,KAAKwrB,UAAU,6BAA+BvB,IAAM,UAEpD,IAAI4B,QAAS/uB,KAAK+uB,MAClB7rB,MAAKuoB,aAAesD,MAEpB,IAAIM,MAAOnsB,KAAK0K,KAAKme,OAAOuD,SAASnC,KAEjC+C,cAAgBnB,OAAOI,iBAAiBnsB,OAAS,EACjDmtB,cAAgBpB,OAAOE,iBAAiBjsB,OAAS,CAErDqsB,MAAKe,eACFC,MAAOH,cACP5K,MAAO6K,eAGVjtB,KAAKwrB,UAAUwB,cAAgB,2BAA6B,0BAC5DhtB,KAAKwrB,UAAUyB,cAAgB,2BAA6B,0BAExD3zB,EAAE,qBAAqBwG,SACxB1G,IAAIg0B,kBAAkB9zB,EAAE,kCAAmCuyB,QAE3DvyB,EAAE,uBAAyB0zB,cAAgB,cAAgB,kBAAkBxjB,SAAS,0BAa5FsgB,sBAAuB,SAAShT,MAAOha,KAAMmtB,KAC1CjqB,KAAKwrB,UAAU,6BAA+BvB,IAAM,cAYvDF,4BAA6B,SAASjT,MAAOmT,IAAKkC,MAC/C,GAAIkB,UAAWlB,KAAKK,eAAec,eAC/BC,OAASpB,KAAKK,eAAegB,kBAMjC,IAJAr0B,KAAKyD,MAAM,oBAAsBqtB,IAAKkC,KAAKK,eAAeiB,mBAC1Dt0B,KAAKyD,MAAM,oBAAsBqtB,IAAKsD,QACtCp0B,KAAKyD,MAAM,iBAAmBqtB,IAAKoD,UAElB,WAAbA,UAAqC,cAAXE,QAAqC,cAAXA,OAiClC,WAAXA,SACRp0B,KAAKkH,IAAIf,OAAOsN,YAAYzT,KAAKiH,SAAS+rB,KAAKE,SAAU,MAAO/yB,EAAE8I,EAAE,2BAEpE9I,EAAEqG,UAAUO,IAAI,uBAEhBisB,KAAKU,cAAc,oBACnBV,KAAKW,YAELxzB,EAAEqG,UAAUkD,QAAQ,8BAzC0D,CAE9EvJ,EAAE,sCAAsC8L,OACxC9L,EAAE,2BAA2B6L,MAE7B,IAAIuoB,UAAWvB,KAAKK,eAAemB,iBAAiBC,IAChDC,UAAY1B,KAAKK,eAAesB,kBAAkBF,GAEtDzB,MAAK4B,SAAWC,QAAQC,kBAAkBD,QAAQE,UAAUR,SAAU,mBAAmB5T,YACzFqS,KAAKgC,UAAYH,QAAQC,kBAAkBD,QAAQE,UAAUL,UAAW,mBAAmB/T,WAE3F,IAAIsU,UAAW,yDAEfjC,MAAKkC,UAAYR,UAAUtrB,MAAM,GAAIpH,QAAOizB,WAAW,GACvDjC,KAAKmC,SAAWZ,SAASnrB,MAAM,GAAIpH,QAAOizB,WAAW,EAIrD,KAFA,GACI7rB,OADAgsB,MAAQ,GAAIpzB,QAAOizB,SAAU,KAEU,QAAnC7rB,MAAQgsB,MAAM7nB,KAAKmnB,aACxB,GAAItrB,MAAM,KAAO4pB,KAAKkC,UAEnB,WADAzT,OAAM,qGAKZ,IAAItV,MAAO,KACXA,OAAQ,MAAQhM,EAAE8I,EAAE,YAAc,SAAW+pB,KAAKmC,SAAW,SAC7DhpB,MAAQ,MAAQhM,EAAE8I,EAAE,aAAe,SAAW+pB,KAAKkC,UAAY,SAC/D/oB,MAAQ,MAAQhM,EAAE8I,EAAE,qBAAuB,SAAW+pB,KAAK4B,SAAW,SACtEzoB,MAAQ,MAAQhM,EAAE8I,EAAE,sBAAwB,SAAW+pB,KAAKgC,UAC5D7oB,MAAQ,OAERhM,EAAE,8BAA8BiE,KAAK+H,QAmB3C0kB,iBAAkB,aAWlBoB,UAAW,SAASzqB,IAAK6tB,IACtB,GAAIxoB,MAAOhG,IAEX,OAAwC,QAApC0E,QAAQub,mBAAmBtf,SAC5BxH,MAAKyD,MAAM,uBAIdoJ,KAAKwiB,YAAc7nB,IAEnBxH,KAAKyM,cACF6oB,yBAA0B,WACvBzoB,KAAKwlB,UAAU,iBAEfryB,KAAKkH,IAAIf,OAAOsN,YAAYzT,KAAKiH,SAASO,KAAM,MAAOrH,EAAE8I,EAAE,iBAE3D9I,EAAEqG,UAAUQ,IAAI,eAAgB,SAASomB,EAAG0D,IAAKpsB,OACzB,UAAjBA,MAAM8a,SAIVrf,EAAEqG,UAAUO,IAAI,uBAChBwD,WAAW,WACRvK,KAAKkH,IAAI4N,UAAU,4EACnB,QAGNjI,KAAK0E,KAAKme,OAAO6F,SAAS/tB,IAAKqF,KAAK0E,KAAK/J,IAAIkE,gBAEhD+nB,sBAAuB,WACpBzzB,KAAKkH,IAAI2L,OAAOW,eAItB3G,MAAK+mB,aAAayB,MAQrBtC,OAAQ,SAAS1K,OAAQlc,MACtBhM,EAAEqG,UAAUO,IAAI,uBAEhB/G,KAAKkvB,OAAO3d,KAAKme,OAAOiE,UAAU,KAAMtL,OAAQlc,MAChDhM,EAAEqG,UAAUkD,QAAQ,0BAQvBkqB,aAAc,SAASyB,IACpB,MAAIxuB,MAAKsoB,gBACNhvB,GAAEqG,UAAUkD,QAAQ,qBAAuB7C,KAAKsoB,eAInDkG,GAAKA,KAAQ,QAAS,SAEtBr1B,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,qBACxCmP,SAAS,IAEZpN,KAAKwrB,UAAU,qDAEiB,mBAArBmD,mBAA2E,mBAAhCA,kBAAiBC,WACpED,iBAAiBC,WAAW,SAASC,YAClC,GAAIC,kBAAmBD,WAAWE,IAAI,SAAShlB,IAE5C,MAAOA,IAAGilB,MAGbR,IAAKA,GAAGS,OAAO,SAASllB,IACrB,MAAwC,KAAjC+kB,iBAAiBnd,QAAQ5H,MAGnCmlB,4BAA4BV,MAG/BU,4BAA4BV,OAUlCW,SAAU,SAAShC,OACXA,OACFh0B,KAAKyD,MAAM,yBAGdtD,EAAE,uBAAuBqO,QAEzB,IAAIynB,QAAS91B,EAAE,aAAagR,IAAI,UAAW,QAAQsD,SAAS,QAAQ3E,MACjE8B,MAAOoiB,MAAMpiB,QACb2D,OAAQye,MAAMze,WACdzQ,IAAI,GACHoxB,IAAMD,OAAOE,WAAW,KAE5BD,KAAIE,UAAUpC,MAAM,GAAI,EAAG,EAC3B,IAAItiB,KAAMvR,EAAE,UACRof,IAAM,IAEV,KACGA,IAAM0W,OAAOI,UAAU,cACxB,MAAOhyB,KAEN,WADArE,MAAKyE,KAAK,QAASJ,KAItBqN,IAAI,GAAGX,IAAMwO,GACb,IAAIjD,MAAOnc,EAAE,QAAQ2P,MAClBwmB,OAAQ,SACR/d,KAAMgH,KAETjD,MAAKvN,OAAO2C,KACZvR,EAAE,qBAAqB4O,OAAOuN,MAE9B2Z,OAAOznB,WASbxO,KAAKkH,IAAIyrB,gBAAkB,SAASnrB,KACjC,GAAIqF,MAAO7M,KAAKkvB,MAEhB/uB,GAAEqG,UAAUQ,IAAI,uBAAwB,WAGrC7G,EAAE,iCAAiC,GAAGo2B,OAAQ,EAC9Cp2B,EAAE,iCAAiC,GAAGq2B,OAAS,CAE/C,IAAIC,IAAKt2B,EAAE,kCACPu2B,GAAKv2B,EAAE,gCAEXu2B,IAAGC,WACAC,YAAa,WAGhB32B,IAAIg0B,kBAAkByC,GAAI7pB,KAAKsiB,YAE/B,IAAI0H,UAAW12B,EAAE,gBAAgByR,QAC7BklB,SAAWL,GAAG7kB,OAGlB,IAAIklB,SAAWD,SAAU,CACtB,GAAIE,OAAQF,SAAWC,SACnBE,MAAQP,GAAGlhB,SAAWwhB,MACtBE,MAAQJ,SACRK,GAAK/2B,EAAE,oCAEXs2B,IAAGlhB,OAAOyhB,OACVP,GAAG7kB,MAAMqlB,OAETC,GAAG3hB,OAAOyhB,OACVE,GAAGtlB,MAAMqlB,OAETP,GAAGnhB,OAAOmhB,GAAGnhB,SAAWwhB,OACxBL,GAAG9kB,MAAM8kB,GAAG9kB,QAAUmlB,OAGrBlqB,KAAKuiB,eACNnvB,IAAIg0B,kBAAkBwC,GAAI5pB,KAAKuiB,cAE/BjvB,EAAE,uBAAyB0M,KAAKuiB,aAAa0D,iBAAiBnsB,OAAS,EAAI,cAAgB,kBAAkB0J,SAAS,wBAGzH,IAAI8mB,aAAc,SAASC,KAAM9oB,MAC9BnO,EAAE,kCAAkCk3B,IAAID,MAAM/kB,SAE9C,IAAImK,MACDlK,SAAUtS,KAAKkH,IAAI2L,OAAO5D,OAGzBX,MACD8oB,KAAK/jB,UAAUmJ,KAEf4a,KAAK5kB,YAAYgK,MAInBnO,IAAMrO,KAAKkH,IAAIf,OAAOmI,KAAKtO,KAAKiH,SAASO,KAE7C6G,KAAIhC,KAAK,kBAAkBkR,UAAU,WACrClP,IAAIhC,KAAK,kBAAkB2N,YACxBzE,OAAQ,MAEXlH,IAAIhC,KAAK,mBAAmB8E,IAAI,MAAO,SAEvChR,EAAE,kCAAkC4O,OAAOV,IAAI0M,UAE/C5a,EAAE,6BAA6BmM,MAAM,WAClCtM,KAAKkvB,OAAO6D,WAGf5yB,EAAE,+BAA+BmM,MAAM,WACpCtM,KAAKkvB,OAAO8G,SAASS,IACrBU,YAAYh3B,EAAE,mCAAmC,KAGpDA,EAAE,gCAAgCmM,MAAM,WACrC6qB,YAAYh3B,EAAE,qCAGjBA,EAAE,+BAA+BmM,MAAM,WACpC,GAAIgrB,UAAWn3B,EAAE,8BAEbm3B,UAAS/kB,GAAG,YACb+kB,SAASrrB,OACT9L,EAAE,6BAA6ByR,MAAM,OACrC5R,KAAKkH,IAAI2L,OAAO5D,QACb2C,MAAO,YAGV0lB,SAAStrB,OACT7L,EAAE,6BAA6ByR,MAAM,OACrC5R,KAAKkH,IAAI2L,OAAO5D,QACb2C,MAAO,aAKhBzR,EAAE,2BAA2BmM,MAAM,WAChC6qB,YAAYh3B,EAAE,iCAGjBA,EAAE,iCAAiCmM,MAAM,WAElCnM,EAAEo3B,QAAQC,aAEXr3B,EAAEqG,UAAUQ,IAAI,sBAAuB,WACpC0vB,GAAGxlB,WAAW,WAGjB/Q,EAAE,qCAAqCq3B,gBAI7Cr3B,EAAE,6BAA6BiT,OAAO,WACnCqjB,GAAG,GAAGD,OAASr2B,EAAE0G,MAAMwB,QAG1BlI,EAAE,6BAA6Bsa,SAAS,WACrCta,EAAE0G,MAAMwB,IAAI,QAIlBrI,KAAKkH,IAAI2L,OAAOvE,KAAKtO,KAAKkH,IAAI8H,SAASlK,IAAI,gBACxCmP,SAAS,KAIf9T,EAAE0E,OAAO7E,KAAKqB,OACXo2B,cAAe,GACfC,YAAa,KAGhBv3B,EAAEqG,UAAUmT,MAAM,WACf1Z,IAAM03B,WAEM,OAAR13B,MACDC,kBAAoBD,IAAIozB,eAExBlzB,EAAEqG,UAAUC,GAAG,kBAAmBzG,KAAKkvB,OAAO6C,iBAC9C5xB,EAAEqG,UAAUC,GAAG,mBAAoBzG,KAAKkvB,OAAOpJ,YAC/C3lB,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAKkvB,OAAOvqB,SAUrD3E,KAAK8G,MACFyK,KAAM,KAyBN3I,MAAO,WAEJ,IAAI5I,KAAK8G,KAAKyK,OAAQvR,KAAK8G,KAAKyK,KAAKqmB,UAArC,CAIA,GAAIpwB,KAAM,KAAMsB,SAAW,KAAMgoB,IAAM,KAAM+G,IAAM,IAEnD,QAAQ9qB,UAAUpG,QACf,IAAK,GACFa,IAAMuF,UAAU,GAChBjE,SAAWiE,UAAU,EACrB,MACH,KAAK,GACFvF,IAAMuF,UAAU,GAChB+jB,IAAM/jB,UAAU,GAChB8qB,IAAM9qB,UAAU,EAChB,MACH,SACG+jB,IAAM9wB,KAAK6D,QAAQC,QAAQ,OAC3B+zB,IAAM73B,KAAK6D,QAAQC,QAAQ,OAEf,OAARgtB,KAAwB,OAAR+G,IACjBrwB,IAAMxH,KAAK6D,QAAQC,QAAQ,QAE3BgtB,IAAM,KACN+G,IAAM,KACNrwB,IAAMxH,KAAK4E,QAAQkC,KAAKU,KAIjC,GAAI+X,KAAMvf,KAAK4E,QAAQE,IAAI,QAAQya,GAGnCpf,GAAEqG,UAAUC,GAAG,iBAAkBzG,KAAK8G,KAAK8wB,WAC3Cz3B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAKgxB,UAC1C33B,EAAEqG,UAAUC,GAAG,oBAAqBzG,KAAK8G,KAAKixB,cAC9C53B,EAAEqG,UAAUC,GAAG,YAAazG,KAAK8G,KAAKkxB,aACtC73B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAKmxB,YAC1C93B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAK+jB,YAE1Ctf,QAAQ2sB,aAAa,WAAY,qBAGjCl4B,KAAK8G,KAAKyK,KAAO,GAAIhG,SAAQ4sB,WAAW5Y,IAGxC,IAAI6Y,oBAAqBp4B,KAAK8G,KAAKyK,KAAK8mB,WACxCr4B,MAAK8G,KAAKyK,KAAK8mB,YAAc,SAASC,QACnC,GAAIhkB,KAAM8jB,mBAAmBrwB,KAAK/H,KAAK8G,KAAKyK,KAAM+mB,OAGlD,OAFAt4B,MAAK6D,QAAQ8F,QAAQ,YAAa3J,KAAK8G,KAAKyK,KAAKgnB,WAE1CjkB,KAGNtU,KAAK6D,QAAQC,QAAQ,YAAa,IACnC9D,KAAK8G,KAAKyK,KAAKinB,SAAW,SAAS70B,MAChCI,QAAQC,IAAI,IAAKL,OAEpB3D,KAAK8G,KAAKyK,KAAKknB,UAAY,SAAS90B,MACjCI,QAAQC,IAAI,IAAKL,OAIvB,IAAI+0B,UAAW,SAASpoB,OAAQ0T,WAI7B,OAFAhkB,KAAKyD,MAAMk1B,OAAOC,oBAAoBrtB,QAAQstB,QAAQvoB,QAAU,KAAO0T,WAE/D1T,QACL,IAAK/E,SAAQstB,OAAOC,UACjB94B,KAAKoB,IAAMpB,KAAKiH,SAASjH,KAAK8G,KAAKyK,KAAK/J,IAAIkE,eAC5CvL,EAAEqG,UAAUkD,QAAQ,iBACpB,MACH,KAAK6B,SAAQstB,OAAOE,SACjB54B,EAAEqG,UAAUkD,QAAQ,gBACpB,MACH,KAAK6B,SAAQstB,OAAOG,aACjB74B,EAAEqG,UAAUkD,QAAQ,oBACpB,MACH,KAAK6B,SAAQstB,OAAOI,SACjB94B,EAAEqG,UAAUkD,QAAQ,gBACpB,MACH,KAAK6B,SAAQstB,OAAOK,SACjB/4B,EAAEqG,UAAUkD,QAAQ,kBAKzB1J,MAAK8G,KAAKyK,KAAKyf,OAChBhxB,KAAK8G,KAAKyK,KAAKyf,KAAKmI,KAAO,oBAG1Bn5B,KAAKY,SAAWkwB,KAAO+G,KACxB73B,KAAKyD,MAAM,iBACXzD,KAAKyD,MAAM,QAAUqtB,KACrB9wB,KAAK8G,KAAKyK,KAAK6nB,OAAO5xB,IAAKspB,IAAK+G,IAAKa,YAErC14B,KAAKyD,MAAM,kBAEPzD,KAAK8G,KAAKyK,KAAKyf,MAGhBhxB,KAAK8G,KAAKyK,KAAK8nB,eAAe,SAAS7nB,QACpC,GAAIwC,MAAOhU,KAAK8G,KAAKyK,KAAKpI,OAAQwS,EAAInK,OAAO8nB,cAAc,KAAMC,IAAM5d,EAAE6d,aAAa,OAAQL,KAAOxd,EAAE6d,aAAa,QAEhHC,cAAgBn1B,KAAKqoB,MAAMoB,aAAajqB,QAAQ,kCAEpD9D,MAAK8G,KAAKyK,KAAKyf,KAAK0I,aAAa1lB,MAAQulB,IACzCE,cAAczlB,MAAQmlB,KAEtBpL,aAAapkB,QAAQ,4BAA6BrF,KAAKC,UAAUvE,KAAK8G,KAAKyK,KAAKyf,KAAK0I,eACrF3L,aAAapkB,QAAQ,6BAA8BrF,KAAKC,UAAUk1B,iBAClEluB,QAAQrJ,GAAGy3B,MAGjB35B,KAAK8G,KAAKyK,KAAKqoB,QAAQpyB,KAAOxH,KAAK4E,QAAQkC,KAAKU,IAAKsB,UAAY9I,KAAK4E,QAAQkC,KAAKgC,SAAU4vB,aAUnG9xB,OAAQ,SAAS0L,UAUd,GAPAtS,KAAK6D,QAAQmqB,WAAW,OAGxBhuB,KAAK6D,QAAQ2T,eAAe,aAC5BxX,KAAK6D,QAAQ2T,eAAe,cAC5BxX,KAAK6D,QAAQmqB,WAAW,cAEnBhuB,KAAKK,OAGP,MAFAF,GAAE,gBAAgBqO,SAClBrO,EAAE,oBAAoBqO,UACf,CAGV,IAAuB,OAAnBxO,KAAK8G,KAAKyK,KACX,OAAO,CAIVpR,GAAE,QAAQmM,QAEVtM,KAAKe,qBAA4C,iBAAbuR,UAAyBA,UAAW,EAGxEnS,EAAEgI,KAAKnI,KAAK6D,QAAQoB,YAAY,eAAkB,SAASyI,EAAGrF,KAC3DrI,KAAKkG,IAAI8D,OAAO3B,MAGnB,IAAIwxB,QAASlB,OAAOmB,KAAK95B,KAAKkG,IAAIoN,aAAe3M,OAAS,EACtDozB,SAAW,aACNF,QAAU,IACb75B,KAAK8G,KAAKyK,KAAKyoB,QAEfzvB,WAAW,WACRvK,KAAK8G,KAAKyK,KAAK0oB,cACf,MAqBT,OAhBA95B,GAAEgI,KAAKnI,KAAKkG,IAAIoN,YAAe,SAASvO,IAAK2H,KACtCA,IAAI6D,WAAa2C,IAAI7R,MAAM8R,mBAC5BzG,IAAI4f,OAAOvkB,KAAK2E,IAAK,WAClBA,IAAI/H,KAAKoD,KAAK2E,KACd1M,KAAKkG,IAAIklB,OAAOrmB,KAEhBg1B,aAGHA,aAINA,YAGO,GAQVnC,UAAW,WAER53B,KAAK8G,KAAKyK,KAAK4Y,OAEf,IAAI+P,QAAS3uB,QAAQC,kBAAkBxL,KAAK8G,KAAKyK,KAAK/J,KAAKkE,cAAgB,IAAMH,QAAQub,mBAAmB9mB,KAAK8G,KAAKyK,KAAK/J,IAgB3H,IAbAxH,KAAK6D,QAAQ8F,QAAQ,MAAO3J,KAAK8G,KAAKyK,KAAK4oB,OAAOrJ,KAClD9wB,KAAK6D,QAAQ8F,QAAQ,MAAOuwB,QAE5Bl6B,KAAK6D,QAAQ8F,QAAQ,gBAAgB,GAAKnH,OAAQgB,WAGlDxD,KAAK6D,QAAQ2T,eAAe,aAE5BxX,KAAK6D,QAAQ2T,eAAe,cAC5BxX,KAAK6D,QAAQ2T,eAAe,OAC5BxX,KAAK6D,QAAQ2T,eAAe,SAAU,OACtCxX,KAAK6D,QAAQ2T,eAAe,WAExBxX,KAAK4E,QAAQyC,UAAUsB,UACxB,OAAQ3I,KAAK4E,QAAQyC,UAAUujB,aAAe,UAC3C,IAAK,SACF5qB,KAAKoM,iBAER,MAAK,EAEF,WADApM,MAAK8G,KAAKszB,kBAOnBp6B,KAAKkH,IAAIvC,OACTxE,EAAE,gBAAgBiQ,YAAY,qBAC9BpQ,KAAKoH,WACLpH,KAAK8G,KAAKyK,KAAK8oB,SACfr6B,KAAKkH,IAAI2L,OAAOW,QAChBrT,EAAEqG,UAAUkD,QAAQ,kBAQvBouB,SAAU,WAEP93B,KAAK8G,KAAKyK,KAAK6R,WAAWpjB,KAAK8G,KAAKwzB,gBAAiB,mBAAoB,KAAM,OAC/Et6B,KAAK8G,KAAKyK,KAAK6R,WAAWpjB,KAAK8G,KAAKspB,UAAW,KAAM,UAAW,QAChEpwB,KAAK8G,KAAKyK,KAAK6R,WAAWpjB,KAAK8G,KAAKyzB,WAAY,KAAM,WACtDv6B,KAAK8G,KAAKyK,KAAK6R,WAAWpjB,KAAK8G,KAAKoc,WAAY,KAAM,WAEtD,IAAI8N,MAAOhxB,KAAK8G,KAAKyK,KAAKyf,KACtB7nB,OAASnJ,KAAK8G,KAAKyK,KAAKpI,MAE5B,IAAI6nB,MAAQhxB,KAAK4E,QAAQE,IAAI,WAAW+E,OAAQ,CAC7C,GAAI2wB,mBAAoB,WACjBx6B,KAAK8G,KAAKyK,KAAKyf,KAAKc,gBAAgB3oB,OAAQnJ,KAAKqB,MAAMa,GAAGC,UAC3DnC,KAAK8G,KAAKkkB,QAAQnhB,SAIxB,IAAkE,mBAAvDmnB,MAAKyJ,mBAAmBzJ,KAAK0I,aAAavwB,SAA0B,CAC5E,GAAIswB,eAAgBn1B,KAAKqoB,MAAMoB,aAAajqB,QAAQ,kCAEpD3D,GAAEqG,UAAUC,GAAG,eAAgB,QAASwqB,QAAO7hB,GAAI4E,MAE5CA,OAAS7K,SAIbqxB,oBAEAr6B,EAAEqG,UAAUO,IAAI,eAAgBkqB,WAGnCD,KAAK0J,qBAAqB16B,KAAK8G,KAAKyK,KAAKpI,OAAQswB,cAActwB,QAAS6nB,KAAK0I,aAAavwB,aAG1FqxB,qBAKN,GAAKx6B,KAAKY,SAAYZ,KAAK6D,QAAQoB,YAAY,aAe5CjF,KAAK8G,KAAK8Q,eAfgD,CAG1DzX,EAAEqG,UAAUQ,IAAI,sBAAuBhH,KAAK8G,KAAK8Q,UAEjDzX,EAAE,0BAA0BqO,QAE5B,IAAIiN,IAAKC,KACN/J,KAAM,QACNgK,EAAE,SACFC,MAAO,oBAGV5b,MAAK8G,KAAKyK,KAAKsK,OAAOJ,GAAIzb,KAAK8G,KAAK6zB,UAKvC36B,KAAK8G,KAAKszB,mBAMbA,gBAAiB,WAGdp6B,KAAK8G,KAAKyK,KAAKgnB,UAAYv4B,KAAK6D,QAAQC,QAAQ,eAAgB,GAAItB,OAAOgB,UAE3ErD,EAAEqG,UAAUkD,QAAQ,yBAMvBkO,SAAU,WAEH5X,KAAK8G,KAAKyK,KAAKiS,QAChBxjB,KAAK8G,KAAKyK,KAAKiS,MAAMoX,YAAY,SAAU,MAAO,QAClD56B,KAAK8G,KAAKyK,KAAKiS,MAAMuN,WAAWxlB,QAAQrJ,GAAG24B,YAC3C76B,KAAK8G,KAAKyK,KAAKiS,MAAMuN,WAAWxlB,QAAQrJ,GAAG44B,UAI9C,IAAIpjB,MAAOqjB,OAEP/6B,MAAK8G,KAAKyK,KAAKyf,MAEhBtZ,KAAKiE,EAAE,IAAK3b,KAAK8G,KAAKyK,KAAKyf,KAAKgK,qBAAqBC,IAGxD,IAAIC,WAAYl7B,KAAK6D,QAAQoB,YAAY,aAAe,QACtC,YAAdi2B,WACDxjB,KAAKiE,EAAE,QAAQ1S,EAAEiyB,WAAWD,IAG/B,IAAI1Q,UAAWvqB,KAAK4E,QAAQE,IAAI,WAC5BylB,WAA2C,mBAAxBA,UAAS2Q,YAAgE,IAAlCz4B,SAAS8nB,SAAS2Q,aAC7ExjB,KAAKiE,EAAE,YAAY1S,EAAEshB,SAAS2Q,YAAYD,KAG7Cj7B,KAAKyD,MAAM,gBAAiBiU,KAAK9K,YACjC5M,KAAK8G,KAAKyK,KAAK4pB,KAAKzjB,OAQvBqgB,aAAc,WACX/3B,KAAKyD,MAAM,gBAEXzD,KAAK6D,QAAQmqB,WAAW,OACxBhuB,KAAK6D,QAAQmqB,WAAW,OACxBhuB,KAAK6D,QAAQmqB,WAAW,gBACxBhuB,KAAK6D,QAAQmqB,WAAW,UACxBhuB,KAAK6D,QAAQ2T,eAAe,SAAU,OACtCxX,KAAK6D,QAAQ2T,eAAe,WAE5BrX,EAAEqG,UAAUO,IAAI,iBAAkB/G,KAAK8G,KAAK8wB,WAC5Cz3B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAKgxB,UAC3C33B,EAAEqG,UAAUO,IAAI,oBAAqB/G,KAAK8G,KAAKixB,cAC/C53B,EAAEqG,UAAUO,IAAI,YAAa/G,KAAK8G,KAAKkxB,aACvC73B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAKmxB,YAC3C93B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAK+jB,YAE3C7qB,KAAK8G,KAAKyK,KAAO,KAEjBpR,EAAE,oBAAoBqO,SAElBxO,KAAKe,sBACNZ,EAAEqG,UAAUkD,QAAQ,sBAAwB,SAAU,IACtDvJ,EAAE,gBAAgBqO,SAEdxO,KAAKgB,sBACNmF,OAAOi1B,SAAWp7B,KAAK4E,QAAQ8B,cAAcoJ,KAAK,UAGrD9P,KAAKkH,IAAIU,OAAOC,eAGnB1B,OAAO2E,cAAc9K,KAAKW,YAS7Bs3B,WAAY,SAAS7oB,GAAI4U,WACtBhkB,KAAKyD,MAAM,2BAA6BugB,WAEpChkB,KAAK4E,QAAQyC,UAAUsB,WACxB3I,KAAKoM,mBASXye,WAAY,WACT,GAAI7qB,KAAK4E,QAAQyC,UAAUsB,UACxB,OAAQ3I,KAAK4E,QAAQyC,UAAUwjB,YAAc,OAC1C,IAAK,MACF7qB,KAAKkH,IAAI6L,cACT,MACH,KAAK,SACF/S,KAAKoM,kBAKVpM,KAAKc,kBACNd,KAAKkH,IAAI6L,gBAUf4nB,SAAU,SAASlf,IAMhBzb,KAAKyD,MAAM,cAAegY,GAE1B,IAAI9P,WAEJxL,GAAEsb,IAAIpP,KAAK,QAAQlE,KAAK,WACrB,GAAIX,KAAMrH,EAAE0G,MAAMiJ,KAAK,OACnBlB,KAAOzO,EAAE0G,MAAMiJ,KAAK,SAAWtI,IAC/BpG,IAAMpB,KAAKiH,SAASO,KACpBiJ,IAAMtQ,EAAE0G,MAAMiJ,KAAK,eAEvBnE,SAAQrD,KAAKlH,KAEbpB,KAAK6D,QAAQ2T,eAAe,MAAOpW,KAEnCpB,KAAK6D,QAAQ0T,UAAUnW,KACpBoG,IAAKA,IACLoH,KAAMA,KACN0B,OAAQ,EACRG,IAAKA,IACLgF,SAGHzV,KAAKkH,IAAIU,OAAOgE,IAAIxK,OAGA,IAAnBuK,QAAQhF,QACT3G,KAAKkH,IAAIU,OAAOiE,QAGnB7L,KAAK6D,QAAQ8D,YAAY,YAAagE,SAEtC3L,KAAKyD,MAAM,iBACXtD,EAAEqG,UAAUkD,QAAQ;EAUvB4wB,gBAAiB,SAAS7e,IAgEvB,MA1DAzb,MAAKyD,MAAM,kBAAmBgY,IAE9Btb,EAAEsb,IAAIpP,KAAK,QAAQlE,KAAK,WACrB,GAAIX,KAAMrH,EAAE0G,MAAMiJ,KAAK,OACnBlB,KAAOzO,EAAE0G,MAAMiJ,KAAK,SAAWtI,IAC/BpG,IAAMpB,KAAKiH,SAASO,KACpBiJ,IAAMtQ,EAAE0G,MAAMiJ,KAAK,eAGvB,IAAY,WAARW,IACDzQ,KAAKkH,IAAIU,OAAOoT,MAAM5Z,SAClB,CACJ,GAAI8lB,IAAKlnB,KAAK6D,QAAQoB,YAAY,YAE9BiiB,IAAG1O,QAAQpX,KAAO,IACnB8lB,GAAG5e,KAAKlH,KACRpB,KAAK6D,QAAQ8D,YAAY,YAAauf,IAGzC,IAAImU,MAAOr7B,KAAK6D,QAAQ0T,UAAUnW,KAC/BoG,IAAKA,IACLoH,KAAMA,KACN6B,IAAKA,KAGK,aAAT4qB,MAEDr7B,KAAKkH,IAAI6I,OAAO3O,KAChBpB,KAAKkH,IAAIU,OAAOkT,QAAQ1Z,MAExBpB,KAAKkH,IAAIU,OAAOgE,IAAIxK,KAK1B,GAAY,SAARqP,KAA0B,SAARA,IAAgB,CACnC,GACsB0J,QADlBmhB,QAAUt7B,KAAK6D,QAAQoB,YAAY,WACnCs2B,UAAY,IAEhB,KAAKA,YAAaD,SACfnhB,OAASmhB,QAAQC,WAEK,0BAAlBphB,OAAO3M,QAAsC2M,OAAO1M,SAAS,KAAOjG,MACrExH,KAAKyD,MAAM,0BAA4B83B,WAEvCv7B,KAAKma,OAAO3L,OAAO+sB,eAM1Bv7B,KAAK6D,QAAQoB,YAAY,cAAiE,IAAjDjF,KAAK6D,QAAQoB,YAAY,aAAa0B,OAGjFxG,EAAE,0BAA0BqO,SAF5BxO,KAAKkH,IAAIU,OAAOiE,SAMZ,GASVqX,WAAY,SAAS0D,UAclB5mB,KAAKyD,MAAM,aAAcmjB,SAEzB,IAAI4U,OAAQr7B,EAAEymB,UAAU9W,KAAK,QACzBkE,KAAO7T,EAAEymB,UAAU9W,KAAK,QACxBtI,IAAM+D,QAAQC,kBAAkBwI,MAAMtI,cACtC4Y,EAAI/Y,QAAQub,mBAAmB9S,MAC/B5S,IAAMpB,KAAKiH,SAASO,KACpB7D,KAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCqU,IAAMzV,KAAK6D,QAAQoB,YAAY,MAAO7D,SACtCkP,OAAS,KACTmrB,OAASt7B,EAAEymB,UAAUva,KAAK,iCAE9B,IAAI7E,MAAQ+D,QAAQC,kBAAkBxL,KAAK6D,QAAQC,QAAQ,QACxD,OAAO,CAGV,IAAc,UAAV03B,MAID,MAHAr7B,GAAEqG,UAAUkD,QAAQ,uBAAyBsK,KAAM4S,WAEnD5mB,KAAK0E,MAAM,UAAYvE,EAAEymB,UAAU9W,KAAK,UACjC,CAIV,IAAc,cAAV0rB,MAOD,MANAx7B,MAAK6D,QAAQ8D,YAAY,aACtBH,IAAKA,IACLqnB,QAAS,KAEZ7uB,KAAKma,OAAOvO,IAAIzL,EAAE8I,EAAE,sBAAuB9I,EAAE8I,EAAE,QAAU,IAAMzB,IAAK,yBAA2BA,OAExF,CACH,IAAc,gBAAVg0B,OAAqC,iBAAVA,MACnClrB,OAAStQ,KAAKqB,MAAMI,OAAO+W,QAAQ,eAC/B,CACJ,GAAIvM,MAAO9L,EAAEymB,UAAUva,KAAK,QAAQF,MAEjCmE,QAAStQ,KAAKqB,MAAMI,OAAO+W,QADjB,KAATvM,KACkC,SAEAA,MAI1B,IAAXqE,aACMmF,KAAI6O,GAEX7O,IAAI6O,GAAKhU,MAGZ,IAAIorB,WACAzwB,IAAM,EAAG6H,KAAO,IACpB,KAAKA,OAAQ2C,KACNA,IAAIJ,eAAevC,OAChB7H,KAAOwK,IAAI3C,QACR7H,MAAQwK,IAAI3C,QACb4oB,UACAzwB,IAAMwK,IAAI3C,OAEb4oB,OAAOpzB,KAAKwK,MAmBrB,IAdoB,IAAhBnP,KAAK2M,QAAgBrF,IAAM,GAE5BjL,KAAKkK,aAAa6e,QACfhJ,MAAOpc,KAAKiL,KACZlL,IAAKvD,EAAE8I,EAAE,mBACTuW,OAAQpe,MAIduC,KAAK2M,OAASrF,IACdtH,KAAK8R,IAAMimB,OACX/3B,KAAK6D,IAAMA,IAGPi0B,OAAO90B,OAAS,EAAG,CACpB,GAAI6P,OAAQilB,OAAOpvB,KAAK,QAEpBmK,OAAM7P,OAAS,GAAK6P,MAAMrK,SAAWxI,KAAKgN,SAC3C3Q,KAAK6D,QAAQ2T,eAAe,SAAU7T,KAAKgN,QAC3ChN,KAAKgN,OAAS6F,MAAMrK,QAoB1B,MAfInM,MAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,OAAS,GACnC3G,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,MAAO6D,KAGxCxH,KAAK6D,QAAQ8D,YAAY,QAASvG,IAAKuC,MACvC3D,KAAK6D,QAAQ8D,YAAY,MAAOvG,IAAKqU,KAErCzV,KAAKyD,MAAM,aAAeuQ,KAAO,MAAQ1D,QAEzCtQ,KAAKkH,IAAI6I,OAAO3O,KAChBpB,KAAKkH,IAAIU,OAAOkT,QAAQ1Z,KAExBjB,EAAEqG,UAAUkD,QAAQ,iBAAmBsK,KAAM1D,OAAQsW,YAG9C,GAUVwJ,UAAW,SAAS5e,QAEjB,GACIrD,SAASwtB,OADT7c,UAAY3e,EAAEqR,QAAQnF,KAAK,oBAAsBrM,KAAKqB,MAAMa,GAAGE,QAAU,KAGzE0c,WAAUnY,OAAS,GACpBwH,QAAU2Q,UAAUzS,KAAK,aACzByS,WAAY,EACZ6c,OAASx7B,EAAEqR,QAAQnF,KAAK,aAAerM,KAAKqB,MAAMa,GAAGC,QAAU,MAEzC,IAAlBw5B,OAAOh1B,SACRg1B,QAAS,GAGZ37B,KAAKyD,MAAM,6BAA8B0K,WAEzCA,QAAUqD,OACVsN,WAAY,EACZ6c,QAAS,EAET37B,KAAKyD,MAAM,mBAAoB0K,SAGlC,IAAII,MAAOpO,EAAEgO,SAAS9B,KAAK,cAAcF,MAEzC,KAAKoC,MAASA,KAAKnF,MAAM,WAAa0V,UACnC,OAAO,CAGV,IAGI1d,KAHAuQ,KAAOxR,EAAEgO,SAAS2B,KAAK,QACvBkE,KAAO7T,EAAEgO,SAAS2B,KAAK,QACvB8rB,IAAMz7B,EAAEgO,SAAS2B,KAAK,MAGtBF,MAAQzP,EAAEgO,SAAS9B,KAAK,iCAExB0S,MAASnP,MAAMjJ,OAAS,EAAK,GAAInE,MAAKoN,MAAME,KAAK,UAAY,GAAItN,KAGrE,IAFAuc,MAAQA,MAAMvb,UAEVm4B,OAAQ,CACT,GAAI/c,WAAwC,SAA3B+c,OAAO7oB,KAAK,WAAyB,MAAQ,IAK9D,OAJA1R,KAAMpB,KAAKiH,SAAwB,QAAd2X,UAAuBze,EAAEgO,SAAS2B,KAAK,MAAQkE,MAEpEhU,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAKwd,UAAWrQ,MAAM,EAAOuQ,UAAWC,QAE7D,EAECD,YAGRvQ,KAAOyF,KAAO,IAAM7T,EAAE8I,EAAE,MAAQ,IAAM9I,EAAEqR,QAAQ1B,KAAK,MAAQ,IAAMvB,KAAO,IAE1EyF,KAAO7T,EAAEqR,QAAQ1B,KAAK,QAGzB,IAAItI,KAAM+D,QAAQC,kBAAkBwI,KACpC5S,KAAMpB,KAAKiH,SAASO,IACpB,IAAI7D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCy6B,QAAU17B,EAAEgO,SAAS9B,KAAK,qCAE9B,IAAa,OAAT1I,KAAe,CAGhB,GAAI+a,MAAO1e,KAAK6D,QAAQoB,YAAY,OAAQ7D,QAExB,KAAhBsd,KAAK/X,QACN3G,KAAKma,OAAOvO,IAAIzL,EAAE8I,EAAE,kBAAmB9I,EAAE8I,EAAE,iDAAmD,KAAO7H,IAAM,KAAM,yBAA2BA,KAG/I,IAAIsC,KAAM1D,KAAKwM,WAAW+B,KAK1B,OAJA7K,KAAM1D,KAAKuM,WAAW7I,KAEtB1D,KAAK6D,QAAQub,YAAYhe,IAAK,KAAMsC,KAAK,EAAOob,UAAWC,QAEpD,EAGV,GAAI1Q,KAAMrO,KAAKkH,IAAIf,OAAOxB,KAAKvD,IAqC/B,OAlCa,SAATuQ,OACDtD,IAAI1K,KAAK,MAAOqQ,MAChBhU,KAAK6D,QAAQ0P,eAAe,QAASnS,KAClCoG,IAAKwM,QAIX7T,EAAEqG,UAAUkD,QAAQ,gBAAkBsK,KAAMzF,OAGxCvO,KAAKK,SAAWL,KAAKkG,IAAIoN,QAAQlS,MAClCpB,KAAKkG,IAAI8D,OAAO5I,KAGd0d,WAAqB,OAAR8c,MAAgBC,QAAQl1B,QAAmB,OAAThD,MAA+B,SAAbA,KAAK8M,KAA+B,SAAb9M,KAAK8M,KAA4B,SAATkB,MAElH3R,KAAK8G,KAAKyK,KAAK4pB,KAAKW,MACjBv7B,GAAIyT,OACJ2H,EAAE,YACFC,MAAO,oBACPhF,GAAIglB,OAIN57B,KAAKkG,IAAIoN,QAAQ+B,eAAejU,KACjCpB,KAAKkG,IAAIoN,QAAQlS,KAAK26B,WAAWxtB,MAC9BwQ,MAAOA,MACPD,UAAWA,YAGd9e,KAAKkH,IAAIf,OAAOsN,YAAYrS,IAAK,KAAMmN,MAAM,EAAOuQ,UAAWC,QAI3D,GAUViZ,YAAa,SAAS5oB,GAAIzL,MACvB3D,KAAK6D,QAAQ8F,QAAQ,MAAOhG,KAAKk0B,MASpC1jB,aAAc,SAASH,KAAM6a,SACtB7uB,KAAKK,QACNL,KAAK8G,KAAKyK,KAAK4pB,KAAKJ,OACjBx6B,GAAIyT,KACJrC,KAAM,QAAY,aAAe,kBAGpC3R,KAAK6D,QAAQ2T,eAAe,aAC5BxX,KAAKkH,IAAI2L,OAAOW,SAGhBxT,KAAK6D,QAAQ0P,eAAe,YAAa,UAAWsb,UAU1Dja,SAAU,SAAS/L,SAAU6L,OAC1B,GAAItT,KAAMpB,KAAKiH,SAAS4B,SAExB,IAAI7I,KAAKK,OAAQ,CAEd,GAAIob,IAAKC,KACN/J,KAAM,QACNgK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFnU,IAAKqB,SACL+F,KAAM8F,OAAS,IAElB1U,MAAK8G,KAAKyK,KAAKsK,OAAOJ,IAGtBzb,KAAK8G,KAAKyK,KAAK4pB,KAAKJ,OACjBx6B,GAAIsI,SACJ8I,KAAM,eAGT3R,KAAK6D,QAAQ2T,eAAe,OAASpW,SAErCpB,MAAK6D,QAAQ8D,YAAY,OAASvG,KAC/ByH,SAAUA,SACV6L,MAAOA,OAAS,QAUzBG,YAAa,SAASrN,KACnB,GAAIpG,KAAMpB,KAAKiH,SAASO,KAGpBiU,GAAKC,KACN/J,KAAM,QACNgK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFnU,IAAK+D,QAAQC,kBAAkBhE,KAC/Bw0B,aAAc,UAEjBh8B,MAAK8G,KAAKyK,KAAKsK,OAAOJ,IAEtBzb,KAAKkH,IAAIU,OAAOoT,MAAM5Z,MAGzBm5B,WAAY,SAASpsB,SAClB,GAAI6F,MAAO7T,EAAEgO,SAAS2B,KAAK,QACvBtI,IAAM+D,QAAQC,kBAAkBwI,MAChC5S,IAAMpB,KAAKiH,SAASO,KACpBsY,SAAW3f,EAAEgO,SAAS9B,KAAK,sCAE/B,IAAIyT,SAASnZ,OAAQ,CAClB,GAEI+G,GAFAuuB,WAAanc,SAAShQ,KAAK,MAAMrE,QAAQ,IAAK,KAC9CiT,KAAO1e,KAAK6D,QAAQoB,YAAY,OAAQ7D,IAG5C,KAAKsM,EAAIgR,KAAK/X,OAAS,EAAG+G,GAAK,EAAGA,IAC/B,GAAIgR,KAAKhR,GAAG4G,MAAQ2nB,WAAY,CAC7Bvd,KAAKhR,GAAGoS,UAAW,EAEnB3f,EAAE,IAAM87B,YAAY5rB,SAAS,iBAE7BrQ,KAAK6D,QAAQ8D,YAAY,OAAQvG,IAAKsd,KACtC,QAKT,OAAO,GAWVW,YAAa,SAASje,IAAKsC,IAAK4Q,KACzBtU,KAAKkG,IAAIoN,QAAQ+B,eAAejU,KACjCpB,KAAKkG,IAAIoN,QAAQlS,KAAK86B,QAAQx4B,IAAK4Q,KAEnCtU,KAAK8G,KAAKukB,aAAarrB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,OAAQD,IAAK4Q,MAaxE+W,aAAc,SAAS7jB,IAAK9D,IAAK4Q,KAC9B,GAAI3Q,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASO,UACvD20B,MAAS5wB,QAAQC,kBAAkBhE,OAASA,IAC5CmK,KAAOhO,KAAKgO,MAAQ,OAEpByqB,OAASN,MACVv7B,GAAIiH,IACJmK,KAAMA,KACNiF,GAAItC,MACJqH,EAAE,QAAQ1S,EAAEvF,IAEX1D,MAAK8G,KAAKkkB,QAAQqR,SAAW34B,IAAI0F,MAAM,WACxCgzB,OAAOnB,KAAKtf,EAAE,WACXC,MAAO5b,KAAKqB,MAAMa,GAAGC,UAId,SAATwP,OAAoBwqB,OAASn8B,KAAK8G,KAAKyK,KAAKyf,KAAKc,gBAAgBtqB,IAAK+D,QAAQrJ,GAAG44B,YAElFsB,OAAOnB,KAAKtf,EAAE,WACXC,MAAO,sBAIb5b,KAAK8G,KAAKyK,KAAK4pB,KAAKiB,SAWvB7lB,UAAW,SAASnV,IAAKirB,GAAI5G,UACtBzlB,KAAKK,OACNL,KAAK8G,KAAKyK,KAAK1C,MAAM/J,IAAIunB,GAAIjrB,IAAKqkB,WAElCzlB,KAAK6D,QAAQ8D,YAAY,QAASvG,IAAK,YAAa,GAAKoB,OAAQgB,WAEjErD,EAAEqG,UAAUQ,IAAI,oBAAqB,SAASoI,GAAIktB,QAC3CA,QAA2B,YAAjBA,OAAOlgB,MAClBiQ,GAAGlsB,EAAEm8B,OAAO34B,MAAMmB,IAAI,IAEtB2gB,eAaZ3P,qBAAsB,SAAStO,KAC5B,GAAIxH,KAAK8G,KAAKyK,KACX,MAAOvR,MAAK8G,KAAKyK,KAAKyf,KAAKlb,qBAAqBtO,IAGnD,IAAI+0B,aAAcj4B,KAAKqoB,MAAMoB,aAAajqB,QAAQ,kCAC9C04B,kBAAoBl4B,KAAKqoB,MAAMoB,aAAajqB,QAAQ,uCAExD,OAAIy4B,aAAY/0B,KACNg1B,kBAAkBD,YAAY/0B,MAGjC,OASbxH,KAAK8G,KAAKkkB,SACPqR,SAAS,EAQTxyB,OAAQ,SAASwiB,IACd,GAAI5Q,IAAKC,KACN/J,KAAM,QACNgK,EAAE,UACFC,MAAO5b,KAAKqB,MAAMa,GAAGC,SAGxBnC,MAAK8G,KAAKyK,KAAKsK,OAAOJ,GAAI,WACvBzb,KAAK8G,KAAKkkB,QAAQqR,SAAU,EAE5Br8B,KAAKyD,MAAM,mBAEP4oB,IACDA,GAAGtkB,KAAKlB,OAEX,SAAS2K,QACTxR,KAAKyE,KAAK,2BAA4B+M,WAU5CirB,QAAS,SAASpQ,IACf,GAAI5Q,IAAKC,KACN/J,KAAM,QACNgK,EAAE,WACFC,MAAO5b,KAAKqB,MAAMa,GAAGC,SAGxBnC,MAAK8G,KAAKyK,KAAKsK,OAAOJ,GAAI,WACvBzb,KAAK8G,KAAKkkB,QAAQqR,SAAU,EAE5Br8B,KAAKyD,MAAM,oBAEP4oB,IACDA,GAAGtkB,KAAKlB,OAEX,SAAS2K,QACTxR,KAAKyE,KAAK,4BAA6B+M,WAU7CkrB,QAAS,SAASr4B,KACf,MAAIA,QAAQ,EAIRrE,KAAK4E,QAAQE,IAAI,WAAW+E,OACtB7J,KAAK8G,KAAKkkB,QAAQnhB,SAGrB7J,KAAK8G,KAAKkkB,QAAQyR,UARzB,UAYJE"} \ No newline at end of file
+{"version":3,"file":"jsxc.min.js","sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepalive","restore","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","getFormattedTime","unixtime","msgDate","Date","parseInt","date","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","time","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","language","substr","defaultLang","i18n","lng","fallbackLng","resStore","I18next","useLocalStorage","localStorageExpirationTime","otr","window","addEventListener","onStorage","lastActivity","loginTimeout","document","on","logoutElement","length","logout","this","xmpp","off","one","jidToBid","gui","checkMaster","onMaster","removeItem","loginForm","form","el_exists","jid","pass","displayRosterMinimized","setUserItem","roster","noConnection","formFound","call","events","submit","submits","each","index","val","push","handler","settings","prepareLogin","onlogin","triggered","login","username","password","loadSettings","onConnecting","showWaitAlert","t","resource","domain","match","preJid","split","onSlave","restoreRoster","restoreWindows","trigger","setItem","startKeepAlive","enable","createDSA","_onMaster","create","noti","notification","hasSupport","hasPermission","prepareRequest","updateAvatar","setTimeout","ink","setInterval","keepAlive","timeout","keepBusyAlive","clearTimeout","clearInterval","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","buddies","add","loaded","empty","windows","minimize","hide","show","setText","text","submitLoginForm","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","apply","arguments","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","emotions","queryActions","message","params","win","open","body","remove","showRemoveDialog","subscribe","showContactDialog","name","vcard","showVcard","append","template","resize","updateWindowListSB","scrollWindowListBy","ev","originalEvent","wheelDelta","tooltip","reg","join","windowTemplate","buddyTemplate","delay","content","attr","update","ri","we","ue","spot","removeClass","addClass","status","msgstate","trust","sub","info","avatar","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","conn","stanza","vCard","img","type","width","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","complete","is","slideToggle","toggleClass","mouseleave","mouseenter","showLoginBox","onAuthFail","alert","dialog","preventDefault","showFingerprints","showVerification","OTR","MSGSTATE_ENCRYPTED","change","prop","slideDown","objects","updateUserItem","close","postMessage","div","sec","quest","keyup","sendSmpReq","showApproveDialog","from","noClose","stopPropagation","resFriendReq","getUsers","list","uid","displayname","option","appendTo","alias","getDomainFromJid","addBuddy","removeBuddy","showAlert","showAuthFail","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","hasOwnProperty","screen","height","j","res","identities","cap","client","identity","getCapabilitiesByJid","category","printProp","depth","item","children","tagName","before","failedToLoad","loadVcard","photo","img_el","showSettings","overwrite","id","checked","saveSettinsPermanent","effect","color","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","saveBuddy","removeUserItem","changePresence","pres","external","sendPres","updatePresence","muteSound","unmuteSound","unreadMsg","readMsg","hasClass","detectUriScheme","container","action","element","href","indexOf","pairs","substring","decodeURIComponent","detectEmail","trim","s","prev","seed","hue","abs","saturation","lightness","background-color","font-weight","text-align","line-height","font-size","toUpperCase","ready","rosterAppend","hideOffline","mute","toggle","slimScroll","distance","opacity","notice","load","bud","insert","rename","expandClick","dblclick","scrollTo","li","listElements","thisStatus","reorder","detach","purge","removeUserElement","_close","input","replaceWith","keypress","which","_rename","newname","iq","$iq","c","xmlns","sendIQ","duration","wl","roster_width","innerWidth","roster_right","parseFloat","state","animate","link","o","opt","onComplete","closeButton","btn","onClosed","onCleanup","overlayClose","escKey","colorbox","outerWidth","innerHeight","outerHeight","toggleTransfer","clear","getSelection","resizable","handles","minHeight","minWidth","event","ui","size","position","top","inArray","unread","ins","restoreChat","highlight","left","parents","_show","scrollDown","_hide","chat","scrollHeight","direction","encrypted","forwarded","stamp","sender","html_msg","MSGSTATE_FINISHED","post","saveMessage","sendMessage","_postMessage","url","source","protocol","p1","esc","msgDiv","msgTsDiv","received","title","avatarDiv","prependTo","pop","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","root","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","authenticationDialog","fingerprintsDialog","chatWindow","windowList","rosterBuddy","loginBox","contactDialog","approveDialog","removeDialog","waitAlert","authFailDialog","confirmDialog","pleaseAccept","aboutDialog","joinChat","muc","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","server","initMenu","onPresence","onPresenceError","addHandler","onGroupchatMessage","onErrorMessage","roomNames","disco","items","discovered","mucFeature","MUC","mucIdentity","showJoinChat","error_handler","condition","room","roomIndex","splice","rooms","listRooms","r","rjid","rnode","rname","count","nickname","discoReceived","roomName","subject","table","feature","exists","tr","keydown","leave","own","onExited","destroy","handler_cb","error_cb","MUC_OWNER","tree","roomdata","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","slimscroll","member","insertMember","affiliation","presence","xdata","getResourceFromJid","unescapeNode","codes","code","bl","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","role","onStatus",110,170,201,"createInstantRoom",301,"postReason",307,321,322,332,"actor","reason","memberdata","m","isNaN","onAddRoster","_num","saved","description","nid","now","notify","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","cancel","permission","checkPermission","func","Audio","play","pause","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","priority","online","away","xa","dnd","onConnected","numberOfMsg","muteNotification","carbons","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","backup","_sendMessage","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","STATUS_END_OTR","STATUS_SMP_HANDLE","sm","abort","onSmpQuestion","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","cb","endOtr","savekey","packPublic","ake","otr_version","parse","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","localStorage","prefix","variable","Number","removeElement","isArray","grep","re","newValue","oldValue","n","posts","transferReq","approve","unshift","incomingCall","allowMediaAccess","videoWindow","webrtc","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","browser","jingle","media_constraints","mandatory","MozDontOfferDataChannel","PRANSWER","AUTOACCEPT","ice_config","MULTIPARTY","pc_constraints","proxy","onMessage","onMediaReady","onMediaFailure","onCallIncoming","onCallTerminated","onCallRinging","onRemoteStreamAdded","onRemoteStreamRemoved","onIceConnectionStateChanged","noStunCandidates","sid","addFeature","caps","onCaps","getTurnCrendentials","turnCredentialsPath","ttl","ajax","async","success","iceConfig","iceServers","credential","dataType","getCapableRes","available","hasFeatureByJid","onAddRosterItem","videoIcon","startCall","updateIcon","capableRes","targetRes","CAPS","setStatus","txt","margin-left","display","stop","stream","showVideoWindow","getAudioTracks","label","getVideoTracks","hangUp","sess","sessions","peerjid","sendRinging","mediaready.jingle","peerconnection","addStream","sendAnswer","accept","mediafailure.jingle","sendTerminate","terminate","reqUserMedia","isVideoDevice","isAudioDevice","remoteDevices","video","attachMediaStream","sigState","signalingState","iceCon","iceConnectionState","iceGatheringState","localSDP","localDescription","sdp","remoteSDP","remoteDescription","local_fp","SDPUtil","parse_fingerprint","find_line","remote_fp","um","finish.mediaready.jsxc","initiate","MediaStreamTrack","getSources","sourceInfo","availableDevices","map","kind","filter","getUserMediaWithConstraints","snapshot","canvas","ctx","getContext","drawImage","toDataURL","target","muted","volume","rv","lv","draggable","containment","w_dialog","w_remote","scale","new_h","new_w","vc","toggleMulti","elem","not","chatarea","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","setupRTC","authenticated","rid","connected","attached","disconnected","onRidChange","onConnfail","addNamespace","Connection","stropheGetUniqueId","getUniqueId","suffix","_uniqueId","xmlInput","xmlOutput","callback","Object","getOwnPropertyNames","Status","CONNECTING","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","node","attach","_addSysHandler","querySelector","ver","getAttribute","_jidNodeIndex","_jidVerIndex","connect","numOtr","keys","disReady","flush","disconnect","nomJid","_proto","connectionReady","resume","onRosterChanged","onReceived","conditionalEnable","_knownCapabilities","_requestCapabilities","onRoster","addIdentity","DISCO_INFO","RECEIPTS","$pres","generateCapsAttrs","up","presState","send","location","temp","notices","noticeKey","ptype","xVCard","maxVal","carbon","mid","request","$msg","receiveMsg","subscription","receivedId","sendMsg","isBar","xmlMsg","enabled","result","jidVerIndex","knownCapabilities","disable","refresh","jQuery"],"mappings":";;;;;;;;;;;;;AAeA,GAAIA,MAAO,KAAMC,IAAM,KAAMC,kBAAoB,MAEhD,SAASC,GACP,YAOHH,OAEGI,QAAS,QAGTC,QAAQ,EAGRC,iBAAiB,EAGjBC,GAAI,KAGJC,OAAQ,KAGRC,eAAgB,KAGhBC,oBAAqB,IAGrBC,UAAW,KAGXC,SAAS,EAGTC,kBAAkB,EAGlBC,kBAAkB,EAGlBC,sBAAsB,EAGtBC,qBAAqB,EAGrBC,MAMAC,kBAAmB,KAGnBC,MAAO,KAGPC,IAAK,KAGLC,OACGC,qBAAsB,UACtBC,qBAAsB,UACtBC,oBAAqB,SACrBC,QAAU,UAAW,MAAO,KAAM,OAAQ,OAAQ,UAClDC,QACGC,IAAK,sBACLC,KAAM,oBACNC,OAAQ,aAEXC,OACGC,IAAK,GAAIC,QAAO,qCAAsC,MACtDC,IAAK,GAAID,QAAO,8PAEnBE,IACGC,QAAS,qBACTC,QAAS,uBAWfC,iBAAkB,SAASC,UACxB,GAAIC,SAAU,GAAIC,MAAKC,SAASH,WAC5BI,MAAQ,IAAMH,QAAQI,WAAWC,MAAM,IACvCC,OAAS,KAAON,QAAQO,WAAa,IAAIF,MAAM,IAC/CG,KAAOR,QAAQS,cACfC,OAAS,IAAMV,QAAQW,YAAYN,MAAM,IACzCO,SAAW,IAAMZ,QAAQa,cAAcR,MAAM,IAC7CS,QAAU,GAAIb,MAAQc,KAAOL,MAAQ,IAAME,OAM/C,OAHAE,SAAQE,SAAS,EAAG,EAAG,EAAG,GAC1BhB,QAAQgB,SAAS,EAAG,EAAG,EAAG,GAEtBF,QAAQG,YAAcjB,QAAQiB,UACxBd,KAAO,IAAMG,MAAQ,IAAME,KAAO,IAAMO,KAE3CA,MAWVG,MAAO,SAASC,IAAKC,KAAMC,OAKxB,GAJIA,QACDF,IAAM,IAAME,MAAQ,KAAOF,KAG1BC,KAAM,CACH3D,KAAK6D,QAAQC,QAAQ,YAAa,GACnCC,QAAQC,IAAIN,IAAKC,KAIpB,IAAIM,EACJ,KAEGA,EAAI9D,EAAE,UAAU+D,QAAQ/D,EAAEwD,MAAMQ,SAASC,OAC1C,MAAOC,KACN,IACGJ,EAAIK,KAAKC,UAAUZ,MACpB,MAAOa,MACNP,EAAI,kBAIVjE,KAAKgE,IAAMhE,KAAKgE,IAAMN,IAAM,KAAOO,EAAI,SAEvCF,SAAQC,IAAIN,KACZ1D,KAAKgE,IAAMhE,KAAKgE,IAAMN,IAAM,MAWlCe,KAAM,SAASf,IAAKC,MACjB3D,KAAKyD,MAAMC,IAAKC,KAAM,SAUzBe,MAAO,SAAShB,IAAKC,MAClB3D,KAAKyD,MAAMC,IAAKC,KAAM,UAIzBK,IAAK,GAQLW,KAAM,SAASC,SAQZ,GANIA,SAEDzE,EAAE0E,QAAO,EAAM7E,KAAK4E,QAASA,SAIF,mBAAnB,cAER,WADA5E,MAAKyE,KAAK,wCAUbzE,MAAK4E,QAAQE,IAAM,SAASC,KACzB,GAAIC,OAAQhF,KAAK6D,QAAQoB,YAAY,cAErC,OAAOD,OAAMD,MAAQ/E,KAAK4E,QAAQG,MASrC/E,KAAK4E,QAAQM,IAAM,SAASH,IAAKI,OAC9BnF,KAAK6D,QAAQuB,WAAW,UAAWL,IAAKI,OAAO,IAGlDnF,KAAKkB,kBAAoBlB,KAAK6D,QAAQC,QAAQ,qBACf,OAA3B9D,KAAKkB,oBACNlB,KAAKkB,kBAAoB,EAI5B,IAAImE,KAEDA,MADkC,OAAjCrF,KAAK6D,QAAQC,QAAQ,QACf9D,KAAK6D,QAAQC,QAAQ,QACpB9D,KAAK4E,QAAQU,UAAYC,UAAUC,SACpCD,UAAUC,SAASC,OAAO,EAAG,GAE7BzF,KAAK4E,QAAQc,YAIvBvF,EAAEwF,KAAKhB,MACJiB,IAAKP,KACLQ,YAAa,KACbC,SAAUC,QAEVC,iBAAiB,EACjBC,2BAA4B,QAG3BjG,KAAK6D,QAAQC,QAAQ,YAAa,IACnC9D,KAAK4E,QAAQsB,IAAIzC,OAAQ,GAI5B0C,OAAOC,iBAAiB,UAAWpG,KAAK6D,QAAQwC,WAAW,EAE3D,IAAIC,cAAetG,KAAK6D,QAAQC,QAAQ,iBAAmB,CAoB3D,KAlBI,GAAKtB,OAAQgB,UAAY8C,aAAetG,KAAK4E,QAAQ2B,eACtDvG,KAAKY,SAAU,GAGlBT,EAAEqG,UAAUC,GAAG,uBAAwB,WAEnC,GAAmC,OAA/BzG,KAAK4E,QAAQ8B,eAA0B1G,KAAK4E,QAAQ8B,cAAcC,OAAS,EAAG,CAC/E,GAAIC,QAAS,WAGV,MAFA5G,MAAK4E,QAAQ8B,cAAgBvG,EAAE0G,MAC/B7G,KAAKgB,qBAAsB,EACpBhB,KAAK8G,KAAKF,SAGpB5G,MAAK4E,QAAQ8B,cAAcK,IAAI,QAAS,KAAMH,QAAQI,IAAI,QAASJ,WAKrE5G,KAAK6D,QAAQC,QAAQ,QAAW9D,KAAK6D,QAAQC,QAAQ,QAAW9D,KAAKY,QA4DvEZ,KAAKoB,IAAMpB,KAAKiH,SAASjH,KAAK6D,QAAQC,QAAQ,QAE9C9D,KAAKkH,IAAIvC,OAEsC,mBAAnC3E,MAAK6D,QAAQC,QAAQ,UAA8B9D,KAAKY,QAGjEZ,KAAKmH,cAFLnH,KAAKoH,eAjEwE,CAOhF,GAJApH,KAAK6D,QAAQwD,WAAW,OACxBrH,KAAK6D,QAAQwD,WAAW,QAGnBrH,KAAK4E,QAAQ0C,UAAUC,QAAUvH,KAAKwH,UAAUxH,KAAK4E,QAAQ0C,UAAUC,OAASvH,KAAKwH,UAAUxH,KAAK4E,QAAQ0C,UAAUG,MAAQzH,KAAKwH,UAAUxH,KAAK4E,QAAQ0C,UAAUI,OAStK,YAPI1H,KAAK4E,QAAQ+C,2BAEd3H,KAAK6D,QAAQ+D,YAAY,SAAU,UACnC5H,KAAKkH,IAAIW,OAAOlD,OAChB3E,KAAKkH,IAAIW,OAAOC,gBAMgB,mBAA3B9H,MAAK4E,QAAQmD,WACrB/H,KAAK4E,QAAQmD,UAAUC,MAI1B,IAAIT,MAAOvH,KAAK4E,QAAQ0C,UAAUC,KAAOpH,EAAEH,KAAK4E,QAAQ0C,UAAUC,MAC9DU,OAASV,KAAK5D,KAAK,YACpBuE,WAECC,UAIJhI,GAAEiI,KAAKH,OAAOC,OAAQ,SAASG,MAAOC,KACnCH,QAAQI,KAAKD,IAAIE,WAGpBjB,KAAK5D,KAAK,UAAWwE,SACrBZ,KAAKR,IAAI,UAGTQ,KAAKW,OAAO,WAET,GAAIO,UAAWzI,KAAK0I,cAEpB,OAAID,aAAa,GAAoC,SAA1BA,SAAS3B,KAAK6B,SAAsBF,SAAS3B,KAAK6B,WAAY,GASlF,GARJ3I,KAAK4E,QAAQ0C,UAAUsB,WAAY,EAEnC5I,KAAK8G,KAAK+B,SAGH,OA4BnBH,aAAc,WACX,GAAII,UAAW3I,EAAEH,KAAK4E,QAAQ0C,UAAUG,KAAKa,MACzCS,SAAW5I,EAAEH,KAAK4E,QAAQ0C,UAAUI,MAAMY,KAE9C,IAAyC,kBAA9BtI,MAAK4E,QAAQoE,aAErB,WADAhJ,MAAK0E,MAAM,yCAIT1E,MAAKc,kBAA6D,WAAxCd,KAAK4E,QAAQ0C,UAAU2B,cAA4E,mBAAxCjJ,MAAK4E,QAAQ0C,UAAU2B,cAC/GjJ,KAAKkH,IAAIgC,cAAc/I,EAAEgJ,EAAE,cAG7B,IAAIV,UAAWzI,KAAK4E,QAAQoE,aAAahB,KAAKnB,KAAMiC,SAAUC,SAE9D,IAAIN,YAAa,GAAsB,OAAbA,UAAyC,mBAAbA,UAGnD,MAFAzI,MAAKyE,KAAK,yBAEH,CAIVgE,UAAWtI,EAAE0E,QAAO,KAAU4D,UAEQ,gBAA3BA,UAAS3B,KAAKgC,WACtBA,SAAWL,SAAS3B,KAAKgC,SAG5B,IAEIrB,KAFA2B,SAAYX,SAAS3B,KAAa,SAAI,IAAM2B,SAAS3B,KAAKsC,SAAW,GACrEC,OAASZ,SAAS3B,KAAKuC,MA0B3B,OAtBG5B,KADCqB,SAASQ,MAAM,UACTR,SAASQ,MAAM,WAAcR,SAAWA,SAAWM,SAEpDN,SAAW,IAAMO,OAASD,SAGU,kBAAlCpJ,MAAK4E,QAAQ0C,UAAUiC,SAC/B9B,IAAMzH,KAAK4E,QAAQ0C,UAAUiC,OAAO9B,MAGvCzH,KAAKoB,IAAMpB,KAAKiH,SAASQ,KAEzBgB,SAAS3B,KAAKgC,SAAWrB,IAAI+B,MAAM,KAAK,GACxCf,SAAS3B,KAAKuC,OAAS5B,IAAI+B,MAAM,KAAK,GAAGA,MAAM,KAAK,GACpDf,SAAS3B,KAAKsC,SAAW3B,IAAI+B,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAM,GAE5DrJ,EAAEiI,KAAKK,SAAU,SAAS1D,IAAKuD,KAC5BtI,KAAK4E,QAAQM,IAAIH,IAAKuD,OAGzBtI,KAAK4E,QAAQkC,KAAKW,IAAMA,IACxBzH,KAAK4E,QAAQkC,KAAKiC,SAAWA,SAEtBN,UAMVgB,QAAS,WACNzJ,KAAKyD,MAAM,mBAEXzD,KAAKM,iBAAkB,EAEvBN,KAAK0J,gBACL1J,KAAK2J,iBACL3J,KAAKa,kBAAmB,EAExBV,EAAEqG,UAAUoD,QAAQ,0BAMvBxC,SAAU,WACPpH,KAAKyD,MAAM,gBAEXzD,KAAKK,QAAS,EAGdL,KAAK6D,QAAQgG,QAAQ,QAAS,GAC9B7J,KAAK6D,QAAQgG,QAAQ,aAAc,GAC9B7J,KAAK6D,QAAQoB,YAAY,eAC3BjF,KAAK6D,QAAQ+D,YAAY,iBAI5B5H,KAAK8J,iBAED9J,KAAK4E,QAAQE,IAAI,OAAOiF,OAEzB/J,KAAKkG,IAAI8D,YAEThK,KAAKiK,aAOXA,UAAW,WAoBR,GAjBIjK,KAAKM,iBACNH,EAAEiI,KAAKpI,KAAK6D,QAAQoB,YAAY,cAAe,SAASoD,MAAOC,KAC5DtI,KAAKkG,IAAIgE,OAAO5B,OAItBtI,KAAKM,iBAAkB,EAEnBN,KAAKY,UAAYZ,KAAKa,mBACvBb,KAAK0J,gBACL1J,KAAK2J,iBACL3J,KAAKa,kBAAmB,EAExBV,EAAEqG,UAAUoD,QAAQ,0BAInB5J,KAAKY,QAAS,CACf,GAAIuJ,MAAOnK,KAAK6D,QAAQoB,YAAY,eACpCkF,MAAwB,gBAATA,MAAoBA,KAAO,EACtCnK,KAAK4E,QAAQwF,cAAgBD,KAAO,GAAKnK,KAAKoK,aAAaC,aACxDrK,KAAKoK,aAAaE,gBACnBtK,KAAKoK,aAAazF,OAElB3E,KAAKoK,aAAaG,iBAIrBvK,KAAK4E,QAAQwF,cAAe,EAIlCjK,EAAEqG,UAAUC,GAAG,uBAAwB,WACpCzG,KAAKkH,IAAIsD,aAAarK,EAAE,gBAAiBH,KAAKiH,SAASjH,KAAK6D,QAAQC,QAAQ,QAAS,SAGxF9D,KAAK8G,KAAK+B,SAMb1B,YAAa,WACVnH,KAAKyD,MAAM,gBAEXzD,KAAKO,GAAK4F,OAAOsE,WAAWzK,KAAKoH,SAAU,KAC3CpH,KAAK6D,QAAQ6G,IAAI,UAMpBZ,eAAgB,WACb9J,KAAKW,UAAYwF,OAAOwE,YAAY3K,KAAK4K,UAAW5K,KAAK4E,QAAQiG,QAAU,MAM9ED,UAAW,WACR5K,KAAK6D,QAAQ6G,IAAI,SAEb1K,KAAKM,iBACNN,KAAK6D,QAAQgG,QAAQ,gBAAgB,GAAKrH,OAAQgB,YAQxDsH,cAAe,WACR9K,KAAKQ,QACN2F,OAAO4E,aAAa/K,KAAKQ,QAGxBR,KAAKW,WACNwF,OAAO6E,cAAchL,KAAKW,WAG7BX,KAAK6D,QAAQ6G,IAAI,cACjB1K,KAAKQ,OAAS2F,OAAOsE,WAAWzK,KAAK8J,eAAgB9J,KAAK4E,QAAQqG,YAAc,MASnFC,OAAQ,SAASC,KACd,MAAOC,MAAKC,MAAMD,KAAKF,SAAWC,MASrC3D,UAAW,SAAS8D,UACjB,MAAOnL,GAAEmL,UAAU3E,OAAS,GAS/B4E,SAAU,SAAS9D,KAChBzH,KAAKyE,KAAK,+BAEV,IAAI+G,KAAMC,QAAQC,kBAAkBjE,KAAKkE,QAAQ,IAAK,KAAKA,QAAQ,MAAO,KAAKC,aAE/E,OAAOJ,MAUVvE,SAAU,SAASQ,KAChB,MAAOgE,SAAQC,kBAAkBjE,KAAKmE,eAMzClC,cAAe,WACZ,GAAImC,SAAU7L,KAAK6D,QAAQoB,YAAY,YAEvC,OAAK4G,UAA8B,IAAnBA,QAAQlF,QAQxBxG,EAAEiI,KAAKyD,QAAS,SAASxD,MAAOlD,OAC7BnF,KAAKkH,IAAIW,OAAOiE,IAAI3G,SAGvBnF,KAAKkH,IAAIW,OAAOkE,QAAS,MACzB5L,GAAEqG,UAAUoD,QAAQ,yBAZjB5J,KAAKyD,MAAM,2BAEXzD,MAAKkH,IAAIW,OAAOmE,UAgBtBrC,eAAgB,WACb,GAAIsC,SAAUjM,KAAK6D,QAAQoB,YAAY,aAEvB,QAAZgH,SAIJ9L,EAAEiI,KAAK6D,QAAS,SAAS5D,MAAOjH,KAC7B,GAAI+E,QAASnG,KAAK6D,QAAQoB,YAAY,SAAU7D,IAEhD,OAAK+E,SAKLnG,KAAKkH,IAAIf,OAAOxB,KAAKvD,KAEhB+E,OAAO+F,SAGTlM,KAAKkH,IAAIf,OAAOgG,KAAK/K,KAFrBpB,KAAKkH,IAAIf,OAAOiG,KAAKhL,SAKxBpB,MAAKkH,IAAIf,OAAOkG,QAAQjL,IAAK+E,OAAOmG,QAZjCtM,KAAKyD,MAAM,yCAA2CrC,MAC/C,MAkBhBmL,gBAAiB,WACd,GAAIhF,MAAOvH,KAAK4E,QAAQ0C,UAAUC,KAAKR,IAAI,UAGvCoB,QAAUZ,KAAK5D,KAAK,cACxBxD,GAAEiI,KAAKD,QAAS,SAASE,MAAOC,KAC7Bf,KAAKW,OAAOI,OAGXf,KAAKiF,KAAK,WAAW7F,OAAS,EAC/BY,KAAKiF,KAAK,WAAWC,QAErBlF,KAAKW,UAOXwE,WAAY,SAASJ,MAElB,MADAA,MAAOA,KAAKX,QAAQ,SAAU,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KACnEW,KAAKX,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAU1EgB,WAAY,SAASL,MAClB,MAAOnM,GAAE,UAAUiE,KAAKkI,MAAMA,QAUjCM,aAAc,SAASC,KACpB,GAAIC,IAAK1B,KAAKF,SAAS6B,SAAS,IAAItH,OAAO,EAAG,IAC1CuH,KAAOnG,IAUX,OARA1G,GAAEiI,KAAKyE,IAAK,SAAS9H,IAAKuD,KACvBnI,EAAEqG,UAAUQ,IAAIjC,IAAM,IAAM+H,GAAI,WAC7B3M,EAAEqG,UAAUO,IAAI,IAAM+F,IAEtBxE,IAAI2E,MAAMD,KAAME,eAIfJ,IAQVK,SAAU,WACP,GAAIC,SAAS,CAmBb,OAjB+B,mBAApB5G,UAAS4G,OACjBA,OAAS5G,SAAS4G,OACuB,mBAA1B5G,UAAS6G,aACxBD,OAAS5G,SAAS6G,aACoB,mBAAvB7G,UAAS8G,UACxBF,OAAS5G,SAAS8G,UACmB,mBAAtB9G,UAAS+G,WACxBH,OAAS5G,SAAS+G,UAIjBH,QAAUpN,KAAKK,OAChBL,KAAK6D,QAAQ6G,IAAI,SAAU,GAClB0C,QAAWpN,KAAKK,QACzBL,KAAK6D,QAAQ6G,IAAI,UAGb0C,QAQVI,SAAU,WACP,GAAIC,QAAQ,CAYZ,OAViC,kBAAtBjH,UAASgH,WACjBC,MAAQjH,SAASgH,aAGfC,OAASzN,KAAKK,OAChBL,KAAK6D,QAAQ6G,IAAI,QAAS,GAClB+C,QAAUzN,KAAKK,QACvBL,KAAK6D,QAAQ6G,IAAI,SAGb+C,OAWVC,KAAM,SAASC,OAAQC,UACpB,GAEIC,GAFAC,OAASH,OAAOnE,MAAM,KACtBuE,GAAK/N,KAAK8N,OAAO,GAErB,KAAKD,EAAI,EAAGA,EAAIC,OAAOnH,OAAQkH,IAC5BE,GAAKA,GAAGD,OAAOD,GAGlB,OAAkB,kBAAPE,IACDA,GAAGd,MAAM,KAAMW,UADzB,QAYHI,QAAS,SAASC,KACf,GAAcJ,GAAVK,KAAO,CAEX,IAAmB,IAAfD,IAAItH,OACL,MAAOuH,KAGV,KAAKL,EAAI,EAAGA,EAAII,IAAItH,OAAQkH,IACzBK,MAAUA,MAAQ,GAAKA,KAAQD,IAAIE,WAAWN,GAC9CK,MAAQ,CAGX,OAAOA,QASblO,KAAKkH,KAEFkH,WAAc,WAAY,UAAa,0BAA2B,UAAa,SAAU,UAAa,SAAU,SAAY,SAAU,QAAW,SAAU,SAAY,SAAU,gBAAmB,MAAO,cAAiB,aAAc,SAAY,aAAc,gBAAmB,yBAA4B,WAAc,MAAO,UAAa,SAAU,QAAW,QAAS,aAAgB,OAAQ,eAAkB,SAAU,SAAY,UAAW,UAAa,mBAAoB,YAAe,wBAAyB,SAAY,UAAW,UAAa,SAAU,SAAY,QAAS,UAO1kBC,cAEGC,QAAS,SAAS7G,IAAK8G,QACpB,GAAIC,KAAMxO,KAAKkH,IAAIf,OAAOsI,KAAKzO,KAAKiH,SAASQ,KAEzC8G,SAAiC,gBAAhBA,QAAOG,MACzBF,IAAIhC,KAAK,mBAAmBlE,IAAIiG,OAAOG,OAK7CC,OAAQ,SAASlH,KACdzH,KAAKkH,IAAI0H,iBAAiB5O,KAAKiH,SAASQ,OAI3CoH,UAAW,SAASpH,IAAK8G,QACtBvO,KAAKkH,IAAI4H,kBAAkBrH,KAEvB8G,QACDpO,EAAE,eAAemI,IAAIiG,OAAOQ,OAKlCC,MAAO,SAASvH,KACbzH,KAAKkH,IAAI+H,UAAUxH,OASzB9C,KAAM,WAECxE,EAAE,oBAAoBwG,OAAS,IAInCxG,EAAE,QAAQ+O,OAAO/O,EAAEH,KAAKkH,IAAIiI,SAASrK,IAAI,gBAEzC3E,EAAEgG,QAAQiJ,OAAOpP,KAAKkH,IAAImI,oBAC1BlP,EAAE,oBAAoBiP,OAAOpP,KAAKkH,IAAImI,oBAEtClP,EAAE,uCAAuCsM,MAAM,WAC5CzM,KAAKkH,IAAIoI,mBAAmB,QAE/BnP,EAAE,wCAAwCsM,MAAM,WAC7CzM,KAAKkH,IAAIoI,mBAAmB,OAE/BnP,EAAE,oBAAoBsG,GAAG,QAAS,SAAS8I,IACpCpP,EAAE,oBAAoBwD,KAAK,WAC5B3D,KAAKkH,IAAIoI,mBAAoBC,GAAGC,cAAcC,WAAa,EAAK,IAAM,QAI5EzP,KAAKkH,IAAIwI,QAAQ,oBAEZ1P,KAAKwH,UAAU,iBACjBxH,KAAKkH,IAAIW,OAAOlD,OAInBxE,EAAEiI,KAAKpI,KAAKkH,IAAIkH,SAAU,SAASP,EAAGvF,KAEnC,GAAIqH,KAAMrH,IAAI,GAAGqD,QAAQ,+CAAgD,OACzEgE,KAAM,IAAMA,IAAInG,MAAM,KAAKoG,KAAK,KAAO,IACvC5P,KAAKkH,IAAIkH,SAASP,GAAG,GAAK,GAAI7L,QAAO2N,IAAK,OAI7C3P,KAAKkH,IAAI2I,eAAiB1P,EAAEH,KAAKkH,IAAIiI,SAASrK,IAAI,eAClD9E,KAAKkH,IAAI4I,cAAgB3P,EAAEH,KAAKkH,IAAIiI,SAASrK,IAAI,kBASpD4K,QAAS,SAASpE,UACfnL,EAAEmL,UAAUoE,SACTtD,MACG2D,MAAO,KAEVC,QAAS,WACN,MAAO7P,GAAE0G,MAAMoJ,KAAK,SAAStE,QAAQ,MAAO,cAUrDuE,OAAQ,SAAS9O,KACd,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,KAAKuC,KAEF,WADA3D,MAAKyD,MAAM,eAAiBrC,IAI/B,IAAI+O,IAAKnQ,KAAKkH,IAAIW,OAAO/D,QAAQ1C,KAC7BgP,GAAKpQ,KAAKkH,IAAIf,OAAOrB,IAAI1D,KACzBiP,GAAKF,GAAGrE,IAAIsE,IACZE,KAAOnQ,EAAE,wBAA0BiB,IAAM,KAY7C,QATA+O,GAAGxM,KAAKA,MAGR0M,GAAGvE,IAAIwE,MAAMC,YAAY,QAAUvQ,KAAKqB,MAAMI,OAAOmO,KAAK,WAAWY,SAAS,QAAUxQ,KAAKqB,MAAMI,OAAOkC,KAAK8M,SAG/GJ,GAAG7D,KAAK,oBAAoBV,IAAIwE,MAAMhE,KAAK3I,KAAKoL,MAAMkB,KAAK,QAAS9P,EAAEgJ,EAAE,MAAQ,IAAMnJ,KAAKqB,MAAMI,OAAOkC,KAAK8M,SAGrG9M,KAAK+M,UACV,IAAK,GACFN,GAAG5D,KAAK,kBAAkB+D,YAAY,qBAAqBN,KAAK,QAAS9P,EAAEgJ,EAAE,mCAC7EiH,GAAG5D,KAAK,qCAAqCgE,SAAS,iBACtDJ,GAAG5D,KAAK,iCAAiCF,KAAKnM,EAAEgJ,EAAE,iBAClD,MACH,KAAK,GACFiH,GAAG5D,KAAK,kBAAkBgE,SAAS,YAAYP,KAAK,QAAS9P,EAAEgJ,EAAE,iCACjEiH,GAAG5D,KAAK,qCAAqC+D,YAAY,iBACzDH,GAAG5D,KAAK,iCAAiCF,KAAKnM,EAAEgJ,EAAE,iBAClD,MACH,KAAK,GACFiH,GAAG5D,KAAK,qCAAqCgE,SAAS,iBACtDJ,GAAG5D,KAAK,kBAAkB+D,YAAY,YAAYC,SAAS,YAAYP,KAAK,QAAS9P,EAAEgJ,EAAE,6CACzFiH,GAAG5D,KAAK,iCAAiCF,KAAKnM,EAAEgJ,EAAE,kBAKpDxF,KAAKgN,MACNP,GAAG5D,KAAK,kBAAkBgE,SAAS,cAAcP,KAAK,QAAS9P,EAAEgJ,EAAE,8BAEnEiH,GAAG5D,KAAK,kBAAkB+D,YAAY,cAIrC5M,KAAKiN,KAAoB,SAAbjN,KAAKiN,IAClBP,GAAGG,SAAS,eAEZH,GAAGE,YAAY,cAGlB,IAAIM,MAAO,MAAQpF,QAAQC,kBAAkB/H,KAAK8D,KAAO,QACzDoJ,OAAQ1Q,EAAEgJ,EAAE,gBAAkB,KAAOhJ,EAAEgJ,EAAExF,KAAKiN,KAAO,KACrDC,MAAQ1Q,EAAEgJ,EAAE,UAAY,KAAOhJ,EAAEgJ,EAAEnJ,KAAKqB,MAAMI,OAAOkC,KAAK8M,SAE1DN,GAAG3D,KAAK,cAAcyD,KAAK,QAASY,MAEpC7Q,KAAKkH,IAAIsD,aAAa2F,GAAGrE,IAAIsE,GAAG5D,KAAK,cAAe7I,KAAK8D,IAAK9D,KAAKmN,SAWtEtG,aAAc,SAASuG,GAAItJ,IAAKuJ,KAE7B,GAAIC,WAAY,SAASC,KACtB,MAAY,KAARA,KAAqB,MAARA,IAC4B,kBAA/BlR,MAAK4E,QAAQuM,kBACpBnR,MAAK4E,QAAQuM,cAAcnJ,KAAK+I,GAAItJ,SAGxCzH,MAAKkH,IAAIkK,kBAAkBL,GAAGvE,KAAK,gBAAiB/E,MAIvDsJ,GAAGvE,KAAK,gBAAgB6E,WAAW,aAEnCN,IAAGvE,KAAK,gBAAgB8E,KACrBC,mBAAoB,OAASL,IAAM,IACnCM,cAAe,WAIrB,IAAmB,mBAARR,KAER,WADAC,WAAU,EAIb,IAAIQ,WAAYzR,KAAK6D,QAAQoB,YAAY,SAAU+L,IAEjC,QAAdS,UACDR,UAAUQ,WAEVzR,KAAK8G,KAAK4K,KAAK1C,MAAMlK,IAAI,SAAS6M,QAC/B3R,KAAKyD,MAAM,QAASkO,OAEpB,IACIT,KADAU,MAAQzR,EAAEwR,QAAQnF,KAAK,gBAG3B,IAAqB,IAAjBoF,MAAMjL,OACP3G,KAAKyD,MAAM,qBACXyN,IAAM,QACF,IAAIU,MAAMpF,KAAK,UAAU7F,OAAS,EACtCuK,IAAMU,MAAMpF,KAAK,UAAUF,WACvB,CACJ,GAAIuF,KAAMD,MAAMpF,KAAK,UAAUF,OAC3BwF,KAAOF,MAAMpF,KAAK,QAAQF,MAC9B4E,KAAM,QAAUY,KAAO,WAAaD,IAIvCX,IAAMA,IAAIvF,QAAQ,eAAgB,IAElC3L,KAAK6D,QAAQ+D,YAAY,SAAUoJ,IAAKE,KACxCD,UAAUC,MACVzF,QAAQC,kBAAkBjE,KAAM,SAAS/D,KACzC1D,KAAKyE,KAAK,wBAAyBf,KAEnC1D,KAAK6D,QAAQ+D,YAAY,SAAUoJ,IAAK,GACxCC,UAAU,MAUnB5B,mBAAoB,WAEblP,EAAE,uBAAuB4R,QAAU5R,EAAE,oBAAoB4R,QAC1D5R,EAAE,4BAA4BoQ,YAAY,kBAE1CpQ,EAAE,4BAA4BqQ,SAAS,iBACvCrQ,EAAE,uBAAuBmR,IAAI,QAAS,SAU5ChC,mBAAoB,SAAS0C,QAE1B,GAAIC,aAAc9R,EAAE,uBAAuB4R,QACvCA,MAAQ5R,EAAE,oBAAoB4R,QAC9BhB,GAAK5Q,EAAE,uBACP+R,MAAQzP,SAASsO,GAAGO,IAAI,UAAYU,OACpCG,QAAUhS,EAAE,sBAAsB4R,OAEpBA,OAAdE,cAIAC,MAAQ,IACTA,MAAQ,GAGCH,MAAQE,YAAcE,QAA9BD,QACDA,MAAQH,MAAQE,YAAcE,SAGjCpB,GAAGO,IAAI,QAASY,MAAQ,QAS3BE,UAAW,SAAShR,KAGjB,MAFApB,MAAKyE,KAAK,qCAEHzE,KAAKkH,IAAIf,OAAOrB,IAAI1D,MAQ9BiR,WAAY,WACT,GAAIrF,MAAO7M,EAAE0G,KAEbmG,MAAKsF,kBAEL,IAAIC,IAAKvF,KAAKR,KAAK,MACfgG,QAAU,IAEdA,SAAU,WACPD,GAAGC,SACAC,SAAU,WACPzF,KAAKuD,YAAY,kBAIvBpQ,EAAE,QAAQ4G,IAAI,QAAS,KAAMyL,UAGhCrS,EAAE0G,MAAM4F,MAAM,WAgBX,MAdI8F,IAAGG,GAAG,YAEPvS,EAAE,QAAQsM,QACVtM,EAAE,QAAQ6G,IAAI,QAASwL,UAEvBrS,EAAE,QAAQ4G,IAAI,QAAS,KAAMyL,SAGhCD,GAAGI,cAEHxM,OAAO4E,aAAawH,GAAG5O,KAAK,UAE5BqJ,KAAK4F,YAAY,gBAEV,IACPC,WAAW,WACXN,GAAG5O,KAAK,QAASwC,OAAOsE,WAAW+H,QAAS,QAC5CM,WAAW,WACX3M,OAAO4E,aAAawH,GAAG5O,KAAK,aAOlCoP,aAAc,WAmCX,QAASC,cACPC,MAAM7G,OACNpM,KAAKkH,IAAIgM,OAAO9D,SAEhBjP,EAAE,gBAAgBqM,KAAK,UAAU5C,QAAQ,oBAEzCzJ,EAAE,gBAAgBqM,KAAK,SAASxF,IAAI,WAAY,WAC5CiM,MAAM9G,OACNnM,KAAKkH,IAAIgM,OAAO9D,WAzCtBjP,EAAEqG,UAAUC,GAAG,uBAAwB,WACpCtG,EAAE,kBAAkBsN,UAGvBzN,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,YAE3C,IAAImO,OAAQ9S,EAAE,gBAAgBqM,KAAK,cACnCyG,OAAM9G,OAENhM,EAAE,gBAAgBqM,KAAK,QAAQtE,OAAO,SAASqH,IAE5CA,GAAG4D,iBAEHhT,EAAE0G,MAAM2F,KAAK,kCAAkC5C,QAAQ,mBAEvD5J,KAAK4E,QAAQ0C,UAAUC,KAAOpH,EAAE0G,MAChC7G,KAAK4E,QAAQ0C,UAAUG,IAAMtH,EAAE0G,MAAM2F,KAAK,kBAC1CxM,KAAK4E,QAAQ0C,UAAUI,KAAOvH,EAAE0G,MAAM2F,KAAK,kBAE3CxM,KAAKc,kBAAmB,EACxBd,KAAK4E,QAAQ0C,UAAUsB,WAAY,CAEnC,IAAIH,UAAWzI,KAAK0I,cAEhBD,aAAa,EACduK,cAEA7S,EAAEqG,UAAUC,GAAG,gBAAiBuM,YAEhChT,KAAK8G,KAAK+B,YAsBnBuK,iBAAkB,SAAShS,KACxBpB,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,qBAAsB1D,OAQpEiS,iBAAkB,SAASjS,KAGxB,MAAIjB,GAAE,gBAAgBwG,OAAS,MAC5B8D,YAAW,WACRzK,KAAKkH,IAAImM,iBAAiBjS,MAC1B,KAKFpB,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKsP,WAAa4C,IAAIjS,MAAMkS,uBAC/DvT,MAAKyE,KAAK,6BAIbzE,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,uBAAwB1D,MAInEjB,EAAE,4BAA4BgM,OAC9BhM,EAAE,uBAAuBqT,OAAO,WAC7BrT,EAAE,4BAA4BgM,OAC9BhM,EAAE,yBAA2BA,EAAE0G,MAAM4M,KAAK,iBAAmB,KAAKC,WAC/DjB,SAAU,WACPzS,KAAKkH,IAAIgM,OAAO9D,cAMzBjP,EAAE,uCAAuCsM,MAAM,WACxCzM,KAAKK,SACNL,KAAKkG,IAAIyN,QAAQvS,KAAKuP,OAAQ,GAGjC3Q,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,SAAS,GAEnDpB,KAAKkH,IAAIgM,OAAOW,QAEhB7T,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,SAAS,GACnDpB,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,iCAC5CnJ,KAAKkH,IAAIgJ,OAAO9O,OAInBjB,EAAE,uCAAuCsM,MAAM,WAC5C,GAAIsH,KAAM5T,EAAE,4BACR6T,IAAMD,IAAIvH,KAAK,iBAAiBlE,MAChC2L,MAAQF,IAAIvH,KAAK,eAAelE,KAEpC,OAAY,KAAR0L,KAAwB,KAAVC,UAEfF,KAAIvH,KAAK,mBAAmBgE,SAAS,gBAAgB0D,MAAM,WACpD/T,EAAE0G,MAAMyB,MAAMgB,MAAM,OACrBnJ,EAAE0G,MAAM0J,YAAY,mBAMzBvQ,KAAKK,OACNL,KAAKkG,IAAIiO,WAAW/S,IAAK4S,IAAKC,OAE9BjU,KAAK6D,QAAQ+D,YAAY,OAASxG,KAC/B4S,IAAKA,IACLC,MAAOA,QAIbjU,KAAKkH,IAAIgM,OAAOW,YAEhB7T,MAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,qCAI/ChJ,GAAE,sCAAsCsM,MAAM,WAC3C,GAAIsH,KAAM5T,EAAE,4BACR6T,IAAMD,IAAIvH,KAAK,gBAAgBlE,KAEnC,OAAY,KAAR0L,QAEDD,KAAIvH,KAAK,gBAAgBgE,SAAS,gBAAgB0D,MAAM,WACjD/T,EAAE0G,MAAMyB,MAAMgB,MAAM,OACrBnJ,EAAE0G,MAAM0J,YAAY,mBAMzBvQ,KAAKK,OACNL,KAAKkG,IAAIiO,WAAW/S,IAAK4S,KAEzBhU,KAAK6D,QAAQ+D,YAAY,OAASxG,KAC/B4S,IAAKA,IACLC,MAAO,OAIbjU,KAAKkH,IAAIgM,OAAOW,YAEhB7T,MAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,mCASlDiL,kBAAmB,SAASC,MACzBrU,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,kBACxCwP,SAAW,IAGdnU,EAAE,gCAAgCmM,KAAKb,QAAQC,kBAAkB2I,OAEjElU,EAAE,2BAA2BsM,MAAM,SAAS8C,IACzCA,GAAGgF,kBAEHvU,KAAK8G,KAAK0N,aAAaH,MAAM,GAE7BrU,KAAKkH,IAAIgM,OAAOW,UAGnB1T,EAAE,8BAA8BsM,MAAM,SAAS8C,IAC5CA,GAAGgF,iBAEH,IAAI5Q,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASoN,MAE3DrU,MAAK8G,KAAK0N,aAAaH,MAAM,GAGxB1Q,MAAqB,SAAbA,KAAKiN,KACfzQ,EAAEqG,UAAUQ,IAAI,oBAAqB,WAClChH,KAAKkH,IAAI4H,kBAAkBuF,QAIjCrU,KAAKkH,IAAIgM,OAAOW,WAStB/E,kBAAmB,SAAShG,UACzB9I,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,kBAIvCgE,UACD3I,EAAE,kBAAkBmI,IAAIQ,UAG3B3I,EAAE,kBAAkB+T,MAAM,WACvB,GAAqC,kBAA1BlU,MAAK4E,QAAQ6P,SAAyB,CAC9C,GAAInM,KAAMnI,EAAE0G,MAAMyB,KAClBnI,GAAE,kBAAkB6L,QAER,KAAR1D,KACAtI,KAAK4E,QAAQ6P,SAASzM,KAAKnB,KAAMyB,IAAK,SAASoM,MAC3CvU,EAAEiI,KAAKsM,SAAY,SAASC,IAAKC,aAC7B,GAAIC,QAAS1U,EAAE,WACf0U,QAAO5E,KAAK,gBAAiB0E,KAC7BE,OAAO5E,KAAK,aAAc2E,aAE1BC,OAAO5E,KAAK,QAAS0E,KAAKG,SAAS,kBAE/BH,MAAQC,aACRC,OAAO1Q,QAAQ8L,KAAK,QAAS2E,aAAaE,SAAS,yBAQzE3U,EAAE,kBAAkBsG,GAAG,QAAS,WAC7B,GAAI6B,KAAMnI,EAAE0G,MAAMyB,MACduM,OAAS1U,EAAE,kBAAkBqM,KAAK,yBAA2BlE,IAAM,0BAA4BA,IAAM,KAErGuM,QAAOlO,OAAS,IACjBxG,EAAE,kBAAkBmI,IAAIuM,OAAO5E,KAAK,kBACpC9P,EAAE,eAAemI,IAAIuM,OAAO5E,KAAK,kBAIvC9P,EAAE,qBAAqB+H,OAAO,WAC3B,GAAIY,UAAW3I,EAAE,kBAAkBmI,MAC/ByM,MAAQ5U,EAAE,eAAemI,KAO7B,OALKQ,UAASQ,MAAM,YACjBR,UAAY,IAAM2C,QAAQuJ,iBAAiBhV,KAAK6D,QAAQC,QAAQ,SAI9DgF,UAAaA,SAASQ,MAAMtJ,KAAKqB,MAAMS,MAAMC,MASlD/B,KAAK8G,KAAKmO,SAASnM,SAAUiM,OAE7B/U,KAAKkH,IAAIgM,OAAOW,SAET,IAXJ1T,EAAE,kBAAkBqQ,SAAS,gBAAgB0D,MAAM,WAC5C/T,EAAE0G,MAAMyB,MAAMgB,MAAMtJ,KAAKqB,MAAMS,MAAMC,MACtC5B,EAAE0G,MAAM0J,YAAY,mBAGnB,MAgBhB3B,iBAAkB,SAASxN,KAExBpB,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,eAAgB1D,KAE3D,IAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CjB,GAAE,0BAA0BsM,MAAM,SAAS8C,IACxCA,GAAGgF,kBAECvU,KAAKK,OACNL,KAAK8G,KAAKoO,YAAYvR,KAAK8D,KAG3BzH,KAAK6D,QAAQ+D,YAAY,cAAexG,KACrCqG,IAAK9D,KAAK8D,MAIhBzH,KAAKkH,IAAIgM,OAAOW,WAUtB3K,cAAe,SAASxF,KACrB1D,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,YAAa,KAAMpB,MAC3D4Q,SAAW,KAUjBa,UAAW,SAASzR,KACjB1D,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,QAAS,KAAMpB,OAQ7D0R,aAAc,WACXpV,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,mBAEvC9E,KAAK4E,QAAQ0C,UAAUsB,aAAc,GACtCzI,EAAE,6BAA6BgM,OAGlChM,EAAE,0BAA0BsM,MAAM,WAC/BzM,KAAKkH,IAAIgM,OAAOW,UAGnB1T,EAAE,6BAA6BsM,MAAM,WAClCzM,KAAKuM,qBAYX8I,kBAAmB,SAAS3R,IAAK4R,QAASC,SACvCvV,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,gBAAiB,KAAMpB,MAC/D4Q,SAAS,IAGRgB,SACDnV,EAAE,0BAA0BsM,MAAM6I,SAGjCC,SACDpV,EAAE,6BAA6BsM,MAAM8I,UAS3CC,gBAAiB,WACdxV,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,gBAE3C3E,EAAE,+BAA+BsM,MAAM,WACpCzM,KAAKkH,IAAIuO,kBASfA,aAAc,WACX,GAAIC,UAAW,2BAEf,IAAInQ,UAAW,CACZ,GAAIR,IACJ,KAAKA,MAAOQ,WACLA,UAAUoQ,eAAe5Q,MAAkC,gBAAnBQ,WAAUR,OACnD2Q,UAAY,MAAQ3Q,IAAM,SAAWQ,UAAUR,KAAO,UAK3DoB,OAAOyP,SACRF,UAAY,kBAAoBvP,OAAOyP,OAAOC,OAAS,SACvDH,UAAY,iBAAmBvP,OAAOyP,OAAO7D,MAAQ,UAGxD2D,UAAY,wBAA0B1V,KAAKI,QAAU,SAErDJ,KAAKkH,IAAIgM,OAAOzE,KAAK,yBAA2BiH,SAAW,oBAAsB1V,KAAK0M,WAAW1M,KAAKgE,KAAO,iBAShHiL,UAAW,SAASxH,KACjB,GAAIrG,KAAMpB,KAAKiH,SAASQ,IACxBzH,MAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,QAAS1D,KAEpD,IAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,IAAIuC,KAAM,CAEP,GAAIkK,GAAGiI,EAAGC,IAAKC,WAA6BC,IAAKC,OAAtBC,SAAW,IACtC,KAAKtI,EAAI,EAAGA,EAAIlK,KAAKoS,IAAIpP,OAAQkH,IAAK,CAWnC,IAVAkI,IAAMpS,KAAKoS,IAAIlI,GAEfmI,cACAC,IAAMjW,KAAK8G,KAAKsP,qBAAqBhV,IAAM,IAAM2U,KAErC,OAARE,KAAmC,OAAnBA,IAAID,aACrBA,WAAaC,IAAID,YAGpBE,OAAS,GACJJ,EAAI,EAAGA,EAAIE,WAAWrP,OAAQmP,IAChCK,SAAWH,WAAWF,GACI,WAAtBK,SAASE,WACK,KAAXH,SACDA,QAAU,OAGbA,QAAUC,SAASpH,KAAO,KAAOoH,SAASrE,KAAO,IAIvD,IAAIrB,QAASzQ,KAAK6D,QAAQoB,YAAY,MAAO7D,KAAK2U,IAElD5V,GAAE,8BAA8B+O,OAAO,gCAAkC/O,EAAEgJ,EAAE,YAAc,cAAgB4M,IAAM,SACjH5V,EAAE,8BAA8B+O,OAAO,eAAiB/O,EAAEgJ,EAAE,UAAY,cAAgB+M,OAAS,SACjG/V,EAAE,8BAA8B+O,OAAO,eAAiB/O,EAAEgJ,EAAE,UAAY,cAAgBhJ,EAAEgJ,EAAEnJ,KAAKqB,MAAMI,OAAOgP,SAAW,UAI/H,GAAI6F,WAAY,SAASvF,GAAIwF,OAC1B,GAAIvG,SAAU,EAoCd,OAlCAe,IAAG3I,KAAK,WACL,GAAIoO,MAAOrW,EAAE0G,MACT4P,SAAWtW,EAAE0G,MAAM4P,UAEvBzG,UAAW,MAEX,IAAIyD,MAAOtT,EAAEgJ,EAAEqN,KAAK,GAAGE,QAEV,OAATjD,OACDzD,SAAW,WAAayD,KAAO,eAGV,UAApB+C,KAAK,GAAGE,UAEDD,SAAS9P,OAAS,GAC1BqJ,SAAW,OACXA,SAAWsG,UAAUG,SAAUF,MAAQ,GACvCvG,SAAW,SACa,KAAhBwG,KAAKlK,SACb0D,SAAWhQ,KAAK0M,WAAW8J,KAAKlK,UAGnC0D,SAAW,QAEG,IAAVuG,OAAepW,EAAE,8BAA8BwG,OAAS,IACrDxG,EAAE,gDAAgDwG,OAAS,EAC5DxG,EAAE,gDAAgDwW,OAAO3G,SAEzD7P,EAAE,8BAA8B+O,OAAOc,SAE1CA,QAAU,MAIZuG,MAAQ,EACFvG,QADV,QAKC4G,aAAe,WAChB,GAA+C,IAA3CzW,EAAE,8BAA8BwG,OAApC,CAIAxG,EAAE,kBAAkBwO,QAEpB,IAAIqB,SAAU,KACdA,UAAW7P,EAAEgJ,EAAE,mDACf6G,SAAW,OAEX7P,EAAE,gBAAgB+O,OAAOc,UAG5BhQ,MAAK8G,KAAK+P,UAAUzV,IAAK,SAASuQ,QAE/B,GAA+C,IAA3CxR,EAAE,8BAA8BwG,OAApC,CAIAxG,EAAE,kBAAkBwO,QAEpB,IAAImI,OAAQ3W,EAAEwR,QAAQnF,KAAK,gBAE3B,IAAIsK,MAAMnQ,OAAS,EAAG,CACnB,GAAIkL,KAAMiF,MAAMtK,KAAK,UAAUF,OAC3BwF,KAAOgF,MAAMtK,KAAK,QAAQF,OAC1B4E,IAAM,QAAUY,KAAO,WAAaD,GAEpCiF,OAAMtK,KAAK,UAAU7F,OAAS,IAC/BuK,IAAM4F,MAAMtK,KAAK,UAAUF,QAI9B4E,IAAMA,IAAIvF,QAAQ,eAAgB,GAElC,IAAIoL,QAAS5W,EAAE,0CACf4W,QAAO9G,KAAK,MAAOiB,KAEnB/Q,EAAE,mBAAmBwW,OAAOI,QAG/B,MAAuC,KAAnC5W,EAAEwR,QAAQnF,KAAK,SAAS7F,QAAwD,IAAvCxG,EAAEwR,QAAQnF,KAAK,aAAa7F,QAAiC,IAAjBmQ,MAAMnQ,WAC5FiQ,oBAIHN,WAAUnW,EAAEwR,QAAQnF,KAAK,aAAc,KAEvCoK,eAGNI,aAAc,WACXhX,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,cAEA,UAAvC9E,KAAK4E,QAAQE,IAAI,QAAQmS,WAAyBjX,KAAK4E,QAAQE,IAAI,QAAQmS,aAAc,IAC1F9W,EAAE,sBAAsBgM,OAG3BhM,EAAE,qBAAqBiI,KAAK,WACzB,GAAI4E,MAAO7M,EAAE0G,KAEbmG,MAAKR,KAAK,yBAAyBpE,KAAK,WACrC,GAAI8O,IAAKrQ,KAAKqQ,GAAG1N,MAAM,KACnBiK,KAAOyD,GAAG,GACVnS,IAAMmS,GAAG,GACTpF,KAAOjL,KAAKiL,KAEZnO,KAAO3D,KAAK4E,QAAQE,IAAI2O,KAExB9P,OAA6B,mBAAdA,MAAKoB,OACR,aAAT+M,KACiB,UAAdnO,KAAKoB,MAAoBpB,KAAKoB,QAAS,IACxC8B,KAAKsQ,QAAU,WAGlBhX,EAAE0G,MAAMyB,IAAI3E,KAAKoB,WAM7B5E,EAAE,qBAAqB+H,OAAO,WAE3B,GAAI8E,MAAO7M,EAAE0G,MACTlD,OAEJqJ,MAAKR,KAAK,yBAAyBpE,KAAK,WACrC,GAGIE,KAHA4O,GAAKrQ,KAAKqQ,GAAG1N,MAAM,KACnBiK,KAAOyD,GAAG,GACVnS,IAAMmS,GAAG,GAETpF,KAAOjL,KAAKiL,IAGbxJ,KADU,aAATwJ,KACKjL,KAAKsQ,QAELhX,EAAE0G,MAAMyB,MAGZ3E,KAAK8P,QACP9P,KAAK8P,UAGR9P,KAAK8P,MAAM1O,KAAOuD,MAGrBnI,EAAEiI,KAAKzE,KAAM,SAASoB,IAAKuD,KACxBtI,KAAK4E,QAAQM,IAAIH,IAAKuD,MAGzB,IAAIjE,KAAMrE,KAAK4E,QAAQwS,qBAAqBpP,KAAKnB,KAAMlD,KAYvD,OAV0C,gBAA/BqJ,MAAKiD,KAAK,kBAClBjQ,KAAK0N,KAAKV,KAAKiD,KAAK,kBAAoB5L,MAG3CoG,WAAW,WACRuC,KAAKR,KAAK,wBAAwB6K,OAAO,aACtCC,MAAO,IAAQ,QAAU,OACzB,MACH,MAEI,KASbC,wBAAyB,WAEtBvX,KAAK4M,cACF4K,yBAA0B,WACvBxX,KAAKkH,IAAIgM,OAAOW,QAChB7T,KAAKoK,aAAazF,OAClB3E,KAAK6D,QAAQ+D,YAAY,eAAgB,IAE5C6P,2BAA4B,WACzBzX,KAAKkH,IAAIgM,OAAOW,QAChB7T,KAAK4E,QAAQwF,cAAe,EAC5BpK,KAAK6D,QAAQ+D,YAAY,eAAgB,MAI/C5H,KAAKkH,IAAImO,kBAAkBlV,EAAEgJ,EAAE,yBAA0B,WACtDnJ,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,iBACxCwP,SAAS,IAGZtU,KAAKoK,aAAasN,qBAClB,WACAvX,EAAEqG,UAAUoD,QAAQ,+BAI1B+N,kBAAmB,SAASvW,KACzB,GAAIwW,kBAAmBzX,EAAEgJ,EAAE,iDAAmD,KAAO/H,IAAM,MAAQjB,EAAEgJ,EAAE,8BACvGnJ,MAAKkH,IAAImO,kBAAkBuC,iBAAkB,WAE1C5X,KAAKkH,IAAIgM,OAAOW,QAEhB7T,KAAK6D,QAAQgU,UAAUzW,KACpBqG,IAAKrG,IACL2N,KAAM3N,IACNqP,OAAQ,EACRG,IAAK,OACLmF,SAGH/V,KAAKkH,IAAIf,OAAOsI,KAAKrN,MAErB,WAEApB,KAAK6D,QAAQiU,eAAe,OAAQ1W,QAW1C2W,eAAgB,SAASC,KAAMC,UAExBA,YAAa,GACdjY,KAAK6D,QAAQ+D,YAAY,WAAYoQ,MAGpChY,KAAKK,QACNL,KAAK8G,KAAKoR,WAGb/X,EAAE,yBAAyBmM,KAAKnM,EAAE,6BAA+B6X,MAAM1L,QAEvEtM,KAAKkH,IAAIiR,eAAe,MAAOH,OAUlCG,eAAgB,SAAS/W,IAAK4W,MAEf,QAAR5W,MACY,QAAT4W,MACD7X,EAAE,qCAAqCqQ,SAAS,iBAChDxQ,KAAKoK,aAAagO,WAAU,KAE5BjY,EAAE,qCAAqCoQ,YAAY,iBAE9CvQ,KAAK4E,QAAQE,IAAI,qBACnB9E,KAAKoK,aAAaiO,aAAY,KAKvClY,EAAE,4BAA8BiB,IAAM,MAAMmP,YAAY,QAAUvQ,KAAKqB,MAAMI,OAAOmO,KAAK,WAAWY,SAAS,QAAUwH,OAS1HM,UAAW,SAASlX,KACjB,GAAIoN,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAE9BpB,MAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAK0K,IAAI0C,KAAKgC,SAAS,kBAC/CxQ,KAAK6D,QAAQ+P,eAAe,SAAUxS,IAAK,UAAU,IASxDmX,QAAS,SAASnX,KACf,GAAIoN,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAE1BoN,KAAIgK,SAAS,oBACdxY,KAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAK0K,IAAI0C,KAAK+B,YAAY,kBAClDvQ,KAAK6D,QAAQ+P,eAAe,SAAUxS,IAAK,UAAU,KAU3DqX,gBAAiB,SAASC,WACvBA,UAA0BvY,EAAd,UAAgBuY,UAAe,QAE3CA,UAAUlM,KAAK,oBAAoBpE,KAAK,WAErC,GAGIuQ,QAHAC,QAAUzY,EAAE0G,MACZgS,KAAOD,QAAQ3I,KAAK,QAAQtE,QAAQ,SAAU,IAC9ClE,IAAMoR,KAAKrP,MAAM,KAAK,GACd+E,SAEZ,IAAIsK,KAAKC,QAAQ,KAAO,EACrBH,OAAS,cACL,CACJ,GAAII,OAAQF,KAAKG,UAAUH,KAAKC,QAAQ,KAAO,GAAGtP,MAAM,IACxDmP,QAASI,MAAM,EAEf,IAAIlL,GAAG9I,IAAKI,KACZ,KAAK0I,EAAI,EAAGA,EAAIkL,MAAMpS,OAAQkH,IAC3B9I,IAAMgU,MAAMlL,GAAGrE,MAAM,KAAK,GAC1BrE,MAAS4T,MAAMlL,GAAGiL,QAAQ,KAAO,EAAKC,MAAMlL,GAAGmL,UAAUD,MAAMlL,GAAGiL,QAAQ,KAAO,GAAK,KAEtFvK,OAAO0K,mBAAmBlU,MAAQkU,mBAAmB9T,OAId,kBAAlCnF,MAAKkH,IAAImH,aAAasK,UAC9BC,QAAQpI,SAAS,iCAAmCmI,QAEpDC,QAAQ7R,IAAI,SAAS0F,MAAM,SAAS8C,IAKjC,MAJAA,IAAGgF,kBAEHvU,KAAKkH,IAAImH,aAAasK,QAAQ3Q,KAAKhI,KAAMyH,IAAK8G,SAEvC,QAMnB2K,YAAa,SAASR,WACnBA,UAA0BvY,EAAd,UAAgBuY,UAAe,QAE3CA,UAAUlM,KAAK,sBAAsBpE,KAAK,WACvC,GAAIkI,MAAOnQ,EAAE,kBAAkBqQ,SAAS,aACpCqI,KAAO1Y,EAAE0G,MAAMoJ,KAAK,QAAQtE,QAAQ,aAAc,IAAIwN,MAE1D,IAAa,KAATN,MAAeA,OAASpN,QAAQC,kBAAkB1L,KAAK6D,QAAQC,QAAQ,QAAS,CACjF,GAAI1C,KAAMpB,KAAKiH,SAAS4R,MACpB7L,KAAO7M,EAAE0G,MACTuS,EAAIpM,KAAKqM,MAERD,GAAEZ,SAAS,eACbY,EAAI9I,KAAKnM,QAAQ8L,KAAK,WAAY7O,KAElC4L,KAAK2J,OAAOyC,IAGfA,EAAErS,IAAI,SAEF/G,KAAK6D,QAAQoB,YAAY,QAAS7D,MACnCpB,KAAKkH,IAAIgJ,OAAO9O,KAChBgY,EAAE3M,MAAM,WAGL,MAFAzM,MAAKkH,IAAIf,OAAOsI,KAAKrN,MAEd,KAGVgY,EAAE3M,MAAM,WAGL,MAFAzM,MAAKkH,IAAI4H,kBAAkB+J,OAEpB,QAOtBzH,kBAAmB,SAASL,GAAIuI,KAAMhN,MACnCA,KAAOA,MAAQgN,IAEf,IAAI1U,SAAU5E,KAAK4E,QAAQE,IAAI,yBAC3BoJ,KAAOlO,KAAKgO,QAAQsL,MAEpBC,IAAMnO,KAAKoO,IAAItL,MAAQ,IACvBuL,WAAa7U,QAAQ6U,YAAc,GACnCC,UAAY9U,QAAQ8U,WAAa,EAErC3I,IAAGO,KACDqI,mBAAoB,OAASJ,IAAM,KAAOE,WAAa,MAAQC,UAAY,KAC3EpC,MAAS,OACTsC,cAAe,OACfC,aAAc,SACdC,cAAe/I,GAAG8E,SAAW,KAC7BkE,YAA2B,GAAdhJ,GAAG8E,SAAiB,OAGf,gBAATvJ,OAAqBA,KAAK3F,OAAS,GAC5CoK,GAAGzE,KAAKA,KAAK,GAAG0N,iBAUxBha,KAAKkH,IAAIW,QAGNoS,OAAO,EAGPlO,QAAQ,EAQRpH,KAAM,WACHxE,EAAEH,KAAK4E,QAAQsV,aAAe,UAAUhL,OAAO/O,EAAEH,KAAKkH,IAAIiI,SAASrK,IAAI,YAEnE9E,KAAK4E,QAAQE,IAAI,iBAClB3E,EAAE,gCAAgCmM,KAAKnM,EAAEgJ,EAAE,iBAC3ChJ,EAAE,mBAAmBqQ,SAAS,qBAGjCrQ,EAAE,6BAA6BsM,MAAM,WAClCzM,KAAKkH,IAAI8P,iBAGZ7W,EAAE,gCAAgCsM,MAAM,WACrC,GAAI0N,cAAena,KAAK4E,QAAQE,IAAI,cAEhCqV,aACDha,EAAE,mBAAmBqQ,SAAS,oBAE9BrQ,EAAE,mBAAmBoQ,YAAY,oBAGpCpQ,EAAE0G,MAAMyF,KAAmBnM,EAAEgJ,EAAhBgR,YAAkB,eAAsB,iBAErDna,KAAK4E,QAAQM,IAAI,cAAeiV,eAG/Bna,KAAK4E,QAAQE,IAAI,qBAClB9E,KAAKoK,aAAagO,YAGrBjY,EAAE,qCAAqCsM,MAAM,WAE1C,GAA6C,QAAzCzM,KAAK6D,QAAQoB,YAAY,YAA7B,CAKA,GAAImV,OAAQpa,KAAK4E,QAAQE,IAAI,mBAEzBsV,MACDpa,KAAKoK,aAAagO,YAElBpY,KAAKoK,aAAaiO,iBAIxBlY,EAAE,+BAA+BsM,MAAM,WACpCzM,KAAKkH,IAAI4H,sBAGZ3O,EAAE,iCAAiCsM,MAAM,WACtCtG,OAAOsI,KAAK,kCAAmC;GAGlDtO,EAAE,4BAA4BsM,MAAM,WACjCzM,KAAKkH,IAAIsO,oBAGZrV,EAAE,sBAAsBsM,MAAM,WAC3BzM,KAAKkH,IAAIW,OAAOwS,WAGnBla,EAAE,4BAA4BsM,MAAM,WACjC,GAAIO,MAAO7M,EAAE0G,MACTmR,KAAOhL,KAAKrJ,KAAK,OAER,aAATqU,KACDhY,KAAK8G,KAAKF,QAAO,GAEjB5G,KAAKkH,IAAI6Q,eAAeC,QAI9B7X,EAAE,mBAAmBma,YAClBC,SAAU,MACV1E,OAAS1V,EAAE,gBAAgB0V,SAAW,GAAM,KAC5C9D,MAAO5R,EAAE,mBAAmB4R,QAAU,KACtCuF,MAAO,OACPkD,QAAS,QAGZra,EAAE,qCAAqCiI,KAAK,WACzCpI,KAAKkH,IAAImL,WAAWrK,KAAK7H,EAAE0G,SAGa,WAAvC7G,KAAK6D,QAAQoB,YAAY,YAC1B9E,EAAE,gBAAgBmR,IAAI,QAAS,UAC/BnR,EAAE,yBAAyBmR,IAAI,eAAgB,QAGlD,IAAI0G,MAAOhY,KAAK6D,QAAQoB,YAAY,aAAe,QACnD9E,GAAE,yBAAyBmM,KAAKnM,EAAE,6BAA+B6X,MAAM1L,QACvEtM,KAAKkH,IAAIiR,eAAe,MAAOH,MAE/BhY,KAAKkH,IAAIwI,QAAQ,gBAEjB1P,KAAKya,OAAOC,OAEZ1a,KAAKkH,IAAIW,OAAOoS,OAAQ,EACxB9Z,EAAEqG,UAAUoD,QAAQ,sBAQvBkC,IAAK,SAAS1K,KACX,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCuZ,IAAM3a,KAAKkH,IAAI4I,cAAc3L,QAAQ8L,KAAK,WAAY7O,KAAK6O,KAAK,YAAatM,KAAKmO,MAAQ,OAE9F9R,MAAKkH,IAAIW,OAAO+S,OAAOxZ,IAAKuZ,KAE5BA,IAAIlO,MAAM,WACPzM,KAAKkH,IAAIf,OAAOsI,KAAKrN,OAGxBuZ,IAAInO,KAAK,kBAAkBC,MAAM,WAC9BzM,KAAKkH,IAAIf,OAAOsI,KAAKrN,OAGxBuZ,IAAInO,KAAK,gBAAgBC,MAAM,WAE5B,MADAzM,MAAKkH,IAAIW,OAAOgT,OAAOzZ,MAChB,IAGVuZ,IAAInO,KAAK,gBAAgBC,MAAM,WAE5B,MADAzM,MAAKkH,IAAI0H,iBAAiBxN,MACnB,GAGV,IAAI0Z,aAAc,WAMf,MALAH,KAAI/Q,QAAQ,cAEZ+Q,IAAI/H,YAAY,eAEhB5S,KAAKkH,IAAIsD,aAAamQ,IAAKhX,KAAK8D,IAAK9D,KAAKmN,SACnC,EAGV6J,KAAInO,KAAK,iBAAiBC,MAAMqO,aAChCH,IAAII,SAASD,aAEbH,IAAInO,KAAK,mBAAmBC,MAAM,WAE/B,MADAzM,MAAKkH,IAAI+H,UAAUtL,KAAK8D,MACjB,IAGVzH,KAAKkH,IAAIgJ,OAAO9O,KAGhBjB,EAAE,mBAAmBma,YAClBU,SAAU,QAGb7a,EAAEqG,UAAUoD,QAAQ,mBAAqBxI,IAAKuC,KAAMgX,OAGvD7W,QAAS,SAAS1C,KACf,MAAOjB,GAAE,kCAAoCiB,IAAM,OAWtDwZ,OAAQ,SAASxZ,IAAK6Z,IAEnB,GAAItX,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzC8Z,aAAe/a,EAAE,wBACjBya,QAAS,EAGTnK,OAAuB,SAAb9M,KAAKiN,IAAkBjN,KAAK8M,OAAS,EAEnDyK,cAAa9S,KAAK,WAEf,GAAI+S,YAAsC,SAAxBhb,EAAE0G,MAAMlD,KAAK,OAAqBxD,EAAE0G,MAAMlD,KAAK,UAAY,EAE7E,OAAKxD,GAAE0G,MAAMlD,KAAK,QAAQiI,cAAgBjI,KAAKoL,KAAKnD,eAAiBuP,aAAe1K,QAAwBA,OAAb0K,YAE5Fhb,EAAE0G,MAAM8P,OAAOsE,IACfL,QAAS,GAEF,GALV,SASEA,QACFK,GAAGnG,SAAS,oBAUlBsG,QAAS,SAASha,KACfpB,KAAKkH,IAAIW,OAAO+S,OAAOxZ,IAAKpB,KAAKkH,IAAIW,OAAO8G,OAAOvN,OAStDuN,OAAQ,SAASvN,KACd,MAAOpB,MAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAKia,UAQvCC,MAAO,SAASla,KACTpB,KAAKK,SACNL,KAAK6D,QAAQiU,eAAe,QAAS1W,KACrCpB,KAAK6D,QAAQiU,eAAe,MAAO1W,KACnCpB,KAAK6D,QAAQiU,eAAe,eAAiB1W,KAC7CpB,KAAK6D,QAAQiU,eAAe,OAAQ1W,KACpCpB,KAAK6D,QAAQiU,eAAe,SAAU1W,KACtCpB,KAAK6D,QAAQ0X,kBAAkB,YAAana,KAC5CpB,KAAK6D,QAAQ0X,kBAAkB,aAAcna,MAGhDpB,KAAKkH,IAAIf,OAAOqV,OAAOpa,KACvBpB,KAAKkH,IAAIW,OAAO8G,OAAOvN,MAS1ByZ,OAAQ,SAASzZ,KACd,GAAI2N,MAAO/O,KAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAKoL,KAAK,cACzC5H,QAAU5E,KAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAKoL,KAAK,gCAC5CiP,MAAQtb,EAAE,mCAEdyE,SAAQuH,OACR4C,KAAOA,KAAK2M,YAAYD,OAExBA,MAAMnT,IAAIyG,KAAKzC,QACfmP,MAAME,SAAS,SAASpM,IACJ,KAAbA,GAAGqM,QAIPhX,QAAQwH,OACRqP,MAAMC,YAAY3M,MAClB/O,KAAKkH,IAAIW,OAAOgU,QAAQza,IAAKjB,EAAE0G,MAAMyB,OAErCnI,EAAE,QAAQ4G,IAAI,YAIjB0U,MAAMhP,MAAM,WACT,OAAO,IAGVtM,EAAE,QAAQ6G,IAAI,QAAS,WACpBpC,QAAQwH,OACRqP,MAAMC,YAAY3M,MAClB/O,KAAKkH,IAAIW,OAAOgU,QAAQza,IAAKqa,MAAMnT,UAWzCuT,QAAS,SAASza,IAAK0a,SACpB,GAAI9b,KAAKK,OAAQ,CACd,GAAI4D,GAAIjE,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE1C,IAAe,SAAX6C,EAAE6N,KAAiB,CACnB,GAAIiK,IAAKC,KACNlK,KAAM,QACNmK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFxU,IAAKgE,QAAQC,kBAAkBzH,EAAEwD,KACjCsH,KAAM+M,SAET9b,MAAK8G,KAAK4K,KAAKyK,OAAOJ,KAI7B/b,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,OAAQ0a,SAClD9b,KAAKkH,IAAIgJ,OAAO9O,MAQnBiZ,OAAQ,SAASpW,GACd,GAAImY,UAAWnY,GAAK,IAEhB4D,OAAS1H,EAAE,gBACXkc,GAAKlc,EAAE,oBAEPmc,aAAezU,OAAO0U,aACtBC,aAAeC,WAAWtc,EAAE,gBAAgBmR,IAAI,UAChDoL,MAAwB,EAAfF,aAAoB,QAAU,QAE3Cxc,MAAK6D,QAAQ+D,YAAY,SAAU8U,OAEnC7U,OAAO8U,SACJzK,MAAwC,IAA/BoK,aAAeE,cAAsB,MAC9CJ,UACHC,GAAGM,SACAzK,MAAQ,GAAKsK,aAAgB,MAC7BJ,UAEHjc,EAAEqG,UAAUoD,QAAQ,sBAAwB8S,MAAON,YAMtDtU,aAAc,WACX3H,EAAE,gBAAgBqQ,SAAS,qBAE3BrQ,EAAE,mBAAmB6L,QAErB7L,EAAE,gBAAgB+O,OAAO/O,EAAE,MAAQA,EAAEgJ,EAAE,iBAAmB,QAAQ+F,OAAO,OAAS/O,EAAEgJ,EAAE,WAAa,QAAQsD,MAAM,WAC9GzM,KAAKkH,IAAI6L,mBASf/G,MAAO,WACJ,GAAIM,MAAOnM,EAAE,MAAQA,EAAEgJ,EAAE,8BAAgC,QACrDyT,KAAOzc,EAAE,MAAQA,EAAEgJ,EAAE,aAAe,OAExCyT,MAAKnQ,MAAM,WACRzM,KAAKkH,IAAI4H,sBAEZxC,KAAK4C,OAAO0N,MACZtQ,KAAK4C,OAAO,KAEZ/O,EAAE,gBAAgB+D,QAAQoI,QAShCtM,KAAKkH,IAAIgM,QAUNzE,KAAM,SAAS9K,KAAMkZ,GAElB,GAAIC,KAAMD,MAGNjY,UAkEJ,OAjEAA,UACGmY,WAAY,WACT5c,EAAE,4BAA4BsM,MAAM,SAAS8C,IAC1CA,GAAG4D,iBAEHnT,KAAKkH,IAAIgM,OAAOW,UAIfjP,QAAQoY,eAAgB,GACzB7c,EAAE,cAAcgM,OAGnBhM,EAAE,qBAAqBiI,KAAK,WACxB,GAAIb,MAAOpH,EAAE0G,KAEbU,MAAKiF,KAAK,kCAAkCpE,KAAK,WAC7C,GAAI6U,KAAM9c,EAAE0G,KAEZoW,KAAIxW,GAAG,kBAAmB,WAClBwW,IAAIxJ,KAAK,cACTwJ,IAAIxJ,KAAK,YAAY,GAErBwJ,IAAItZ,KAAK,aAAcsZ,IAAI3Q,QAE3B2Q,IAAI3Q,KAAK2Q,IAAIhN,KAAK,8BAI1BgN,IAAIxW,GAAG,mBAAoB,WACpBwW,IAAIxJ,KAAK,cACRwJ,IAAIxJ,KAAK,YAAY,GAErBwJ,IAAI3Q,KAAK2Q,IAAItZ,KAAK,sBAMlC3D,KAAKkH,IAAIgM,OAAO9D,SAEhBjP,EAAEqG,UAAUoD,QAAQ,yBAEvBsT,SAAU,WACP/c,EAAEqG,UAAUoD,QAAQ,sBAEvBuT,UAAW,WACRhd,EAAEqG,UAAUoD,QAAQ,wBAEvB4Q,QAAS,IAGRsC,IAAIxI,UACL1P,QAAQwY,cAAe,EACvBxY,QAAQyY,QAAS,EACjBzY,QAAQoY,aAAc,QACfF,KAAIxI,SAGdnU,EAAE0E,OAAOD,QAASkY,KAElBlY,QAAQR,KAAO,yBAA2BT,KAAO,SAEjDxD,EAAEmd,SAAS1Y,SAEJzE,EAAE,iBAMZ0T,MAAO,WACJ7T,KAAKyD,MAAM,gBACXtD,EAAEmd,SAASzJ,SAQdzE,OAAQ,SAASxK,SACdA,QAAUzE,EAAE0E,QACV0X,WAAYpc,EAAE,gBAAgBod,aAC9BC,YAAard,EAAE,gBAAgBsd,eAC9B7Y,aAEHzE,EAAE,sBAAsBmR,IAAI,WAAY,UAExCnR,EAAEmd,SAASlO,OAAOxK,WASxB5E,KAAKkH,IAAIf,QAQNxB,KAAM,SAASvD,KACZ,GAAIpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,OAAS,EACnC,MAAO3G,MAAKkH,IAAIf,OAAOrB,IAAI1D,IAG9B,IAAIoN,KAAMxO,KAAKkH,IAAI2I,eAAe1L,QAAQ8L,KAAK,WAAY7O,KAAK+K,OAAO2I,SAAS,yBAAyB1I,KAAK,QAC1GzI,KAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAkG7C,IA/FAoN,IAAI7K,KAAK,MAAOA,KAAK8D,KAIrBzH,KAAKkH,IAAImL,WAAWrK,KAAKwG,IAAIhC,KAAK,mBAElCgC,IAAIhC,KAAK,sBAAsBC,MAAM,WAClCzM,KAAKkH,IAAImM,iBAAiBjS,OAG7BoN,IAAIhC,KAAK,sBAAsBC,MAAM,WAClCzM,KAAKkH,IAAIkM,iBAAiBhS,OAG7BoN,IAAIhC,KAAK,kBAAkBC,MAAM,WAC9BzM,KAAKkG,IAAIwX,eAAetc,OAG3BoN,IAAIhC,KAAK,aAAaC,MAAM,WACzBzM,KAAKkH,IAAIf,OAAOkU,OAAOjZ,OAG1BoN,IAAIhC,KAAK,eAAeC,MAAM,WAC3BzM,KAAKkH,IAAIf,OAAO0N,MAAMzS,OAGzBoN,IAAIhC,KAAK,eAAeC,MAAM,WAC3BzM,KAAKkH,IAAIf,OAAOwX,MAAMvc,OAGzBoN,IAAIhC,KAAK,eAAeC,MAAM,WAC3B,OAAO,IAGV+B,IAAIhC,KAAK,mBAAmB0H,MAAM,SAAS3E,IACxC,GAAIb,MAAOvO,EAAE0G,MAAMyB,KAEF,MAAbiH,GAAGqM,QACJlN,KAAO,IAGV1O,KAAK6D,QAAQ+P,eAAe,SAAUxS,IAAK,OAAQsN,MAElC,KAAba,GAAGqM,OACJ5b,KAAKkH,IAAIf,OAAO0N,MAAMzS,OAEzBua,SAAS,SAASpM,IACD,KAAbA,GAAGqM,OAAiBzb,EAAE0G,MAAMyB,QAIhCtI,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAE0G,MAAMyB,OAEhDnI,EAAE0G,MAAMyB,IAAI,OACZmF,MAAM,WAENzN,KAAKkH,IAAIqR,QAAQnX,OACjB0R,WAAW,WACX3S,EAAE,oBAAoBwD,KAAK,UAAU,KACrCkP,WAAW,WACX1S,EAAE,oBAAoBwD,KAAK,UAAU,KAGxC6K,IAAIhC,KAAK,kBAAkBC,MAAM,WAEF,kBAAjBmR,eAAgCA,eAAe7Q,YACvDyB,IAAIhC,KAAK,mBAAmBiB,UAIlCe,IAAIhC,KAAK,kBAAkB8N,YACxBzE,OAAQ,QACR0E,SAAU,QAGb/L,IAAIhC,KAAK,cAAcL,OAEvBqC,IAAIhC,KAAK,cAAc8F,mBAEvB9D,IAAIhC,KAAK,kBAAkBqR,WACxBC,QAAS,WACTC,UAAW,IACXC,SAAU,IACV5O,OAAQ,SAAS6O,MAAOC,IACrB1P,IAAIuD,MAAMmM,GAAGC,KAAKpM,OAClBvD,IAAIhC,KAAK,kBAAkB8N,YACxBzE,OAAQqI,GAAGC,KAAKtI,QAEnB,IAAI7D,QAASxD,IAAIhC,KAAK,kBAAkB4R,WAAWC,GACnD7P,KAAIhC,KAAK,mBAAmB8E,IAAI,MAAQ4M,GAAGC,KAAKtI,OAAS7D,OAAS,EAAK,MAEvE7R,EAAEqG,UAAUoD,QAAQ,sBAAwB4E,IAAKpN,IAAK8c,GAAGC,UAI3Dhe,EAAEme,QAAQld,IAAKpB,KAAK6D,QAAQoB,YAAY,eAAiB,EAAG,CAG7D,GAAIoX,IAAKrc,KAAK6D,QAAQoB,YAAY,aAClCoX,IAAG9T,KAAKnH,KACRpB,KAAK6D,QAAQ+D,YAAY,aAAcyU,IAGvCrc,KAAK6D,QAAQ+D,YAAY,SAAUxG,KAChC8K,UAAU,EACVI,KAAM,GACNiS,QAAQ,QAIPve,MAAK6D,QAAQoB,YAAY,SAAU7D,KAAKmd,QACzCve,KAAKkH,IAAIoR,UAAUlX,IA+BzB,OA3BAjB,GAAEiI,KAAKpI,KAAKkH,IAAIkH,SAAU,SAASP,EAAGvF,KACnC,GAAIkW,KAAMlW,IAAI,GAAGkB,MAAM,KAAK,GACxByR,GAAK9a,EAAE,mBAAqBqe,IAAM,iBAAmBlW,IAAI,GAAK,WAClE2S,IAAGxO,MAAM,WACN+B,IAAIhC,KAAK,SAASlE,IAAIkG,IAAIhC,KAAK,SAASlE,MAAQkW,KAChDhQ,IAAIhC,KAAK,SAASiB,UAErBe,IAAIhC,KAAK,sBAAsB0C,OAAO+L,MAGzCjb,KAAKkH,IAAImL,WAAWrK,KAAKwG,IAAIhC,KAAK,oBAElCxM,KAAKkH,IAAIf,OAAOsY,YAAYrd,KAE5BpB,KAAKkH,IAAIgJ,OAAO9O,KAEhBpB,KAAKkH,IAAImI,qBAGLrP,KAAKK,SAAWL,KAAKkG,IAAIyN,QAAQvS,KAClCpB,KAAKkG,IAAIgE,OAAO9I,KAEhBpB,KAAKkG,IAAI6D,OAAO3I,KAGnBjB,EAAEqG,UAAUoD,QAAQ,oBAAsB4E,MAEnCA,KASV1J,IAAK,SAASoS,IACX,MAAO/W,GAAE,gCAAkCH,KAAKiH,SAASiQ,IAAM,OAUlEzI,KAAM,SAASrN,KACZ,GAAIoN,KAAMxO,KAAKkH,IAAIf,OAAOxB,KAAKvD,IAC/BpB,MAAKkH,IAAIf,OAAOiG,KAAKhL,KACrBpB,KAAKkH,IAAIf,OAAOuY,UAAUtd,IAE1B,IAAI+Q,SAAUhS,EAAE,sBAAsB4R,QAClCwK,WAAapc,EAAE,uBAAuB4R,QACtCwL,WAAapd,EAAE,oBAAoB4R,QAAUI,OAEjD,IAAIoK,WAAagB,WAAY,CAC1B,GAAIvL,QAASvP,SAAStC,EAAE,uBAAuBmR,IAAI,UAC/CS,MAAQvD,IAAI+O,YAAW,GAEvBrL,MAAQqK,WAAa/N,IAAI4P,WAAWO,KAAO5M,MAAQC,OACnD2M,KAAOpB,YAAchB,WAAa/N,IAAI4P,WAAWO,MAAQ3M,MAElD,GAAP2M,MACD3e,KAAKkH,IAAIoI,mBAA0B,GAAPqP,MAGnB,EAARzM,OACDlS,KAAKkH,IAAIoI,mBAAmB4C,OAIlC,MAAO1D,MAQVqF,MAAO,SAASzS,KAEb,MAAwC,KAApCpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,WAC1B3G,MAAKyE,KAAK,8CAIbzE,KAAK6D,QAAQ0X,kBAAkB,aAAcna,KAC7CpB,KAAK6D,QAAQiU,eAAe,SAAU1W,KAElCpB,KAAK6D,QAAQoB,YAAY,aAAa6T,QAAQ1X,KAAO,IAGtDpB,KAAK6D,QAAQiU,eAAe,QAAS1W,KACrCpB,KAAK6D,QAAQiU,eAAe,OAAQ1W,UAGvCpB,MAAKkH,IAAIf,OAAOqV,OAAOpa,OAQ1Boa,OAAQ,SAASpa,KACdpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAK+K,KAAK,OAAQ,WACnChM,EAAE0G,MAAM8H,SAER3O,KAAKkH,IAAImI,wBASfgL,OAAQ,SAASjZ,KAEd,GAAIoN,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAEiB,KAA3CoN,IAAIoQ,QAAQ,oBAAoBjY,SAIhC6H,IAAIhC,KAAK,cAAckG,GAAG,WAC3B1S,KAAKkH,IAAIf,OAAOiG,KAAKhL,KAErBpB,KAAKkH,IAAIf,OAAOgG,KAAK/K,KAGxBpB,KAAKkH,IAAImI,uBAQZjD,KAAM,SAAShL,KAEZpB,KAAK6D,QAAQ+P,eAAe,SAAUxS,IAAK,YAAY,GAEvDpB,KAAKkH,IAAIf,OAAO0Y,MAAMzd,MASzByd,MAAO,SAASzd,KACb,GAAIoN,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,IAC9BpB,MAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,cAAckH,YAC5ClF,IAAI+B,YAAY,YAIhBvQ,KAAKkH,IAAIf,OAAO2Y,WAAW1d,KAEvBpB,KAAKa,kBACN2N,IAAIhC,KAAK,mBAAmBiB,QAG/Be,IAAI5E,QAAQ,qBAQfuC,KAAM,SAAS/K,KACZpB,KAAK6D,QAAQ+P,eAAe,SAAUxS,IAAK,YAAY,GAEvDpB,KAAKkH,IAAIf,OAAO4Y,MAAM3d,MAQzB2d,MAAO,SAAS3d,KACbpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoP,SAAS,YAAYhE,KAAK,eAAegG,UAElExS,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKwI,QAAQ,uBAQpC8U,UAAW,SAAStd,KACjB,GAAI2P,IAAK/Q,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,aAElCuE,IAAG2B,GAAG,cACR3B,GAAGsG,OAAO,aACPC,MAAO,UACP,MASTwH,WAAY,SAAS1d,KAClB,GAAI4d,MAAOhf,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,iBAGrB,KAAhBwS,KAAKrY,QAITqY,KAAK1E,YACFU,SAAWgE,KAAKla,IAAI,GAAGma,aAAe,QAkB5CnL,YAAa,SAAS1S,IAAK8d,UAAWxb,IAAKyb,UAAWC,UAAWC,MAAOC,QACrE,GAAI3b,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzCme,SAAW7b,GAGfA,KAAM1D,KAAK2M,WAAWjJ,KACtBA,IAAM1D,KAAK0M,WAAWhJ,KAIJ,QAAdwb,WAAuBvb,KAAK+M,WAAa4C,IAAIjS,MAAMme,mBAAqBJ,aAAc,IACvFF,UAAY,MACZxb,IAAMvD,EAAEgJ,EAAE,iEAGK,OAAd+V,WAAsBvb,KAAK+M,WAAa4C,IAAIjS,MAAMme,oBACnDN,UAAY,MACZxb,IAAMvD,EAAEgJ,EAAE,gCAAkC,IAAMzF,KAGnC,QAAdwb,WAAoC,SAAbvb,KAAKiN,MAC7BsO,UAAY,MACZxb,IAAMvD,EAAEgJ,EAAE,mEAGbgW,UAAYA,WAAaxb,KAAK+M,WAAa4C,IAAIjS,MAAMkS,kBACrD,IAAIkM,MAAOzf,KAAK6D,QAAQ6b,YAAYte,IAAK8d,UAAWxb,IAAKyb,UAAWC,UAAWC,MAAOC,OAEpE,QAAdJ,WACD/e,EAAEqG,UAAUoD,QAAQ,sBAAwBxI,IAAKme,WAGlC,QAAdL,WAAuBlf,KAAKK,QAAU+e,aAAc,GACrDpf,KAAK8G,KAAK6Y,YAAYve,IAAKme,SAAUE,KAAK9K,KAG7C3U,KAAKkH,IAAIf,OAAOyZ,aAAaxe,IAAKqe,MAEhB,QAAdP,WAA+B,MAARxb,KACxB1D,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAO,OAY9Cwe,aAAc,SAASxe,IAAKqe,KAAM7e,SAC/B,GAAI4N,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAC1BsC,IAAM+b,KAAK/b,IACXwb,UAAYO,KAAKP,UACjBvK,IAAM8K,KAAK9K,GAEXnG,KAAIhC,KAAK,mBAAmBkG,GAAG,iBAAmB1S,KAAKa,kBAAkC,OAAdqe,YAAuBte,SACnGZ,KAAKkH,IAAIf,OAAOuY,UAAUtd,KAG7BsC,IAAMA,IAAIiI,QAAQ3L,KAAKqB,MAAMS,MAAMG,IAAK,SAAS4d,KAE9C,GAAIhH,MAAQgH,IAAIvW,MAAM,iBAAoBuW,IAAM,UAAYA,GAE5D,OAAO,YAAchH,KAAO,qBAAuBgH,IAAM,SAG5Dnc,IAAMA,IAAIiI,QAAQ,GAAI3J,QAAO,YAAchC,KAAKqB,MAAMS,MAAMC,IAAI+d,OAAS,oBAAqB,KAAM,SAASxW,MAAOyW,SAAUtY,IAAKkR,QAChI,MAAiB,UAAboH,UACqB,gBAAXpH,UACRlR,KAAOkR,QAGH,iBAAmBlR,IAAM,KAAOA,IAAM,QAGzC,mBAAqBA,IAAM,qBAAuBA,IAAM,SAGlEtH,EAAEiI,KAAKpI,KAAKkH,IAAIkH,SAAU,SAASP,EAAGvF,KACnC5E,IAAMA,IAAIiI,QAAQrD,IAAI,GAAI,SAASgB,MAAO0W,IAIvC,GAAcnS,GAAVoS,IAAM,EACV,KAAKpS,EAAI,EAAGA,EAAImS,GAAGrZ,OAAQkH,IACxBoS,KAAO,KAAOD,GAAG7R,WAAWN,GAAK,GAGpC,OAAO,eAAiBoS,IAAM,+BAAiC3X,IAAI,GAAK,SAI9E,IAAI4X,QAAS/f,EAAE,SAAUggB,SAAWhgB,EAAE,QA2BtC,IA1BA+f,OAAO1P,SAAS,yBAA2B0O,WAC3CgB,OAAOjQ,KAAK,KAAM0E,KAClBuL,OAAO9b,KAAK,QAAUV,IAAM,UAC5Byc,SAAS3P,SAAS,kBAClB2P,SAAS7T,KAAKtM,KAAKqC,iBAAiBod,KAAKJ,QAErCI,KAAKW,UACNF,OAAO1P,SAAS,iBAGfiP,KAAKL,WACNc,OAAO1P,SAAS,kBAGfiP,KAAKN,WACNe,OAAO1P,SAAS,kBAGD,QAAd0O,UACDlf,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,kBAAkB0C,OAAO,6BACzB,mBAAfuQ,MAAKJ,OACpBa,OAAOhR,OAAOiR,UAGjB3R,IAAIhC,KAAK,kBAAkB0C,OAAOgR,QAEP,gBAAhBT,MAAKH,QAAuC,OAAhBG,KAAKH,OAAiB,CAC1D,GAAIe,OAAQ,GACRC,UAAYngB,EAAE,QAGlB,IAFAmgB,UAAU9P,SAAS,eAAe+P,UAAUL,QAEb,gBAApBT,MAAKH,OAAO7X,IAAkB,CACtCyY,OAAOjQ,KAAK,WAAYjQ,KAAKiH,SAASwY,KAAKH,OAAO7X,KAElD,IAAI9D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASwY,KAAKH,OAAO7X,SACvEzH,MAAKkH,IAAIsD,aAAa0V,OAAQlgB,KAAKiH,SAASwY,KAAKH,OAAO7X,KAAM9D,KAAKmN,QAEnEuP,MAAQrgB,KAAKiH,SAASwY,KAAKH,OAAO7X,KAGL,gBAArBgY,MAAKH,OAAOvQ,OACpBmR,OAAOjQ,KAAK,YAAawP,KAAKH,OAAOvQ,MAEN,gBAApB0Q,MAAKH,OAAO7X,KACnBzH,KAAKkH,IAAIkK,kBAAkBkP,UAAWb,KAAKH,OAAOvQ,MAGxC,KAAVsR,QACAA,MAAQ,KAAOA,OAGnBA,MAAQZ,KAAKH,OAAOvQ,KAAOsR,MAE3BF,SAAS7T,KAAK6T,SAAS7T,OAAS,IAAMmT,KAAKH,OAAOvQ,OAGrDuR,UAAUrQ,KAAK,QAASjQ,KAAK0M,WAAW2T,QAG3CrgB,KAAKkH,IAAIuR,gBAAgBjK,KACzBxO,KAAKkH,IAAIgS,YAAY1K,KAErBxO,KAAKkH,IAAIf,OAAO2Y,WAAW1d,KAGtBoN,IAAIhC,KAAK,mBAAmBkG,GAAG,YAAa1S,KAAKa,kBAAqBD,SACxEZ,KAAKkH,IAAIoR,UAAUlX,MAWzBiL,QAAS,SAASjL,IAAKkL,MACpBtM,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,mBAAmBlE,IAAIgE,OASxDmS,YAAa,SAASrd,KAGnB,IAFA,GAAI4d,MAAOhf,KAAK6D,QAAQoB,YAAY,OAAQ7D,KAE5B,OAAT4d,MAAiBA,KAAKrY,OAAS,GAAG,CACtC,GAAIsV,GAAI+C,KAAKwB,KACbxgB,MAAKkH,IAAIf,OAAOyZ,aAAaxe,IAAK6a,GAAG,KAU3C0B,MAAO,SAASvc,KACbpB,KAAK6D,QAAQ+D,YAAY,OAAQxG,QACjCpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,kBAAkBR,UAStDhM,KAAKkH,IAAIiI,UAUNrK,IAAK,SAASiK,KAAM3N,IAAKsC,KAGtB,GAAI+c,KACDC,oBAAqB1gB,KAAK6D,QAAQoB,YAAY,oBAAsBjF,KAAK6D,QAAQoB,YAAY,oBAAoB0G,QAAQ,UAAW,OAASxL,EAAEgJ,EAAE,iBACjJwX,OAAQ3gB,KAAK6D,QAAQC,QAAQ,QAAU,GACvC8c,QAASnV,QAAQoV,eAAe7gB,KAAK6D,QAAQC,QAAQ,QAAU,KAAO,GACtEgd,KAAM9gB,KAAK4E,QAAQkc,KACnBC,SAAU/gB,KAAK4E,QAAQmc,SAI1B,IAAI3f,IAAK,CACN,GAAIuC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CjB,GAAE0E,OAAO4b,IACNO,qBAAuBrd,MAAQA,KAAKsd,YAAetd,KAAKsd,YAAYtV,QAAQ,UAAW,OAASxL,EAAEgJ,EAAE,iBACpG+X,QAAS9f,IACT+f,SAAWxd,MAAQA,KAAKoL,KAAQpL,KAAKoL,KAAO3N,MAK9CsC,KACDvD,EAAE0E,OAAO4b,IACN/c,IAAKA,KAIX,IAAI0d,KAAMphB,KAAKkH,IAAIiI,SAASJ,KAE5B,OAAqB,gBAAV,MAERqS,IAAMA,IAAIzV,QAAQ,gBAAiB8U,GAAGK,MAGtCM,IAAMjhB,EAAE,SAAS+O,OAAO/O,EAAEihB,KAAKzb,QAAQvB,OAGvCgd,IAAMA,IAAIzV,QAAQ,6BAA8B,SAASyN,EAAGrU,KACzD,MAA2B,gBAAZ0b,IAAG1b,KAAqB0b,GAAG1b,KAAOqU,MAMvDpZ,KAAKyD,MAAM,2BAA6BsL,MACjCA,OAEVsS,qBAAsB,2jEA8BtBC,mBAAoB,weAQpBC,WAAY,63CA2BZ1Z,OAAQ,2nDAmCR2Z,WAAY,0QAOZC,YAAa,glBAabC,SAAU,uzBAYVC,cAAe,6pBAYfC,cAAe,kTAGfC,aAAc,4RAGdC,UAAW,yKAGX7O,MAAO,2JAGP8O,eAAgB,mRAMhBC,cAAe,uMAKfC,aAAc,qCACdC,YAAa,4DACgBliB,KAAKI,QAAU,2kDAS5CwR,MAAO,oPAGPnJ,SAAU,i3EAmCbzI,KAAKkH,IAAIiI,SAASgT,SAAW,q2CAwB7BniB,KAAKoiB,KAEF1Q,KAAM,KAGNrQ,OACGghB,aACGC,MAAO,QACPC,OAAQ,SACRC,QAAS,UACTC,MAAO,QACPC,KAAM,QAETC,MACGC,UAAW,YACXC,YAAa,cACbC,QAAS,UACTJ,KAAM,QAETK,WACGC,KAAM,EACNC,QAAS,EACTC,OAAQ,EACRC,kBAAmB,EACnBC,UAAW,IAWjBze,KAAM,SAASkY,GACZ,GAAI7P,MAAOhN,KAAKoiB,GAChBpV,MAAK0E,KAAO1R,KAAK8G,KAAK4K,IAEtB,IAAI9M,SAAUiY,GAAK7c,KAAK4E,QAAQE,IAAI,MAEpC,OAAKF,UAAqC,gBAAnBA,SAAQye,QAoC3BrjB,KAAKkH,IAAIW,OAAOoS,MACjBjN,KAAKsW,WAELnjB,EAAEqG,UAAUQ,IAAI,oBAAqBhH,KAAKoiB,IAAIkB,UAGjDnjB,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAKoiB,IAAImB,YACzCpjB,EAAEqG,UAAUC,GAAG,sBAAuBzG,KAAKoiB,IAAIoB,iBAE/CxW,KAAK0E,KAAK+R,WAAWzW,KAAK0W,mBAAoB,KAAM,UAAW,aAC/D1W,KAAK0E,KAAK+R,WAAWzW,KAAK2W,eAAgB,KAAM,UAAW,cAC3D3W,KAAK0E,KAAK0Q,IAAIwB,UAAY5jB,KAAK6D,QAAQoB,YAAY,oBA9ChDjF,KAAKyD,MAAM,4BAGXgH,YAAW,WACRuC,KAAK0E,KAAKmS,MAAMC,MAAMrY,QAAQuJ,iBAAiBhI,KAAK0E,KAAKjK,KAAM,KAAM,SAASqc,OAC3E3jB,EAAE2jB,OAAOtX,KAAK,QAAQpE,KAAK,WACxB,GAAIX,KAAMtH,EAAE0G,MAAMoJ,KAAK,OACnB8T,YAAa,CAoBjB;MAlBA/W,MAAK0E,KAAKmS,MAAMhT,KAAKpJ,IAAK,KAAM,SAASoJ,MACtC,GAAImT,YAAa7jB,EAAE0Q,MAAMrE,KAAK,gBAAkBf,QAAQvJ,GAAG+hB,IAAM,MAC7DC,YAAc/jB,EAAE0Q,MAAMrE,KAAK,+CAE3BwX,YAAWrd,OAAS,GAAKud,YAAYvd,OAAS,IAC/C3G,KAAKyD,MAAM,oBAAqBgE,KAEhCzH,KAAK4E,QAAQM,IAAI,OACdme,OAAQ5b,IACRsH,KAAM5O,EAAE0Q,MAAMrE,KAAK,YAAYyD,KAAK,UAGvC8T,YAAa,EAEb/W,KAAKrI,WAIHof,gBAGd,OAwBTT,SAAU,WACP,GAAIrI,IAAK9a,EAAE,QAAQ8P,KAAK,QAAS,iBAAiB3D,KAAKnM,EAAEgJ,EAAE,aAE3D8R,IAAGxO,MAAMzM,KAAKoiB,IAAI+B,cAElBhkB,EAAE,iBAAiB+O,OAAO+L,KAQ7BkJ,aAAc,WACX,GAAInX,MAAOhN,KAAKoiB,IACZlP,OAASlT,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,YAGxDoO,QAAO1G,KAAK,cAAcL,OAG1B+G,OAAO1G,KAAK,gBAAgBlE,IAAItI,KAAK4E,QAAQE,IAAI,OAAOue,OAGxD,IAAIe,eAAgB,SAASnG,MAAOoG,UAAWC,MAC5C,GAAI5gB,IAEJ,QAAQ2gB,WACL,IAAK,iBAEF3gB,IAAMvD,EAAEgJ,EAAE,yBACV,MACH,KAAK,wBAEFzF,IAAMvD,EAAEgJ,EAAE,iCACV,MACH,KAAK,YAEFzF,IAAMvD,EAAEgJ,EAAE,gCACV,MACH,KAAK,WAEFzF,IAAMvD,EAAEgJ,EAAE,yBACV,MACH,KAAK,sBAEFzF,IAAMvD,EAAEgJ,EAAE,sBACV,MACH,KAAK,iBAEFzF,IAAMvD,EAAEgJ,EAAE,uBACV,MACH,KAAK,cAEFzF,IAAMvD,EAAEgJ,EAAE,iCACV,MACH,SACGnJ,KAAKyE,KAAK,gCAAkC4f,WAC5C3gB,IAAMvD,EAAEgJ,EAAE,SAAW,KAAOkb,UAIlC,GAAIE,WAAYvX,KAAK0E,KAAK0Q,IAAIwB,UAAU9K,QAAQwL,KAE5CC,WAAY,KACbvX,KAAK0E,KAAK0Q,IAAIwB,UAAUY,OAAOD,UAAW,SACnCvX,MAAK0E,KAAK0Q,IAAIqC,MAAMH,OAG9BpR,OAAO1G,KAAK,iBAAiBF,KAAK5I,KAGrCvD,GAAEqG,UAAUC,GAAG,iBAAkB2d,eAEjCjkB,EAAEqG,UAAUC,GAAG,oBAAqB,WACjCtG,EAAEqG,UAAUO,IAAI,iBAAkBqd,iBAIrCpX,KAAK0E,KAAK0Q,IAAIsC,UAAU1kB,KAAK4E,QAAQE,IAAI,OAAOue,OAAQ,SAAS1R,QAE9DxR,EAAE,8BAA8BwO,SAEhCxO,EAAEwR,QAAQnF,KAAK,QAAQpE,KAAK,WACzB,GAAIuc,GAAIxkB,EAAE,YACNykB,KAAOzkB,EAAE0G,MAAMoJ,KAAK,OAAOrE,cAC3BiZ,MAAQpZ,QAAQoV,eAAe+D,MAC/BE,MAAQ3kB,EAAE0G,MAAMoJ,KAAK,SAAW4U,KAEpCF,GAAErY,KAAKwY,OACPH,EAAE1U,KAAK,WAAY2U,MACnBD,EAAE1U,KAAK,QAAS4U,OAEhB1kB,EAAE,yBAAyB+O,OAAOyV,IAGrC,IAAIzf,KAAM/E,EAAEwR,QAAQnF,KAAK,8CAEzB,IAAItH,IAAIyB,OAAS,EAAG,CACjB,GAAIoe,OAAQ7f,IAAIsH,KAAK,SAASF,QAAU,GAExC4G,QAAO1G,KAAK,mBAAmB+D,YAAY,gBAAgBjE,KAAKnM,EAAEgJ,EAAE,mBACjE4b,MAAOA,aAGV7R,QAAO1G,KAAK,mBAAmBL,QAElC,WACAnM,KAAKyE,KAAK,wBAGVyO,OAAO1G,KAAK,mBAAmBL,SAGlC+G,OAAO1G,KAAK,kBAAkByD,KAAK,cAAexE,QAAQoV,eAAe7T,KAAK0E,KAAKjK,MAEnFyL,OAAO1G,KAAK,kBAAkBC,MAAM,SAAS8C,IAC1CA,GAAG4D,gBAEH,IAAImR,MAAQnkB,EAAE,cAAcmI,MAAStI,KAAKiH,SAAS9G,EAAE,cAAcmI,OAAS,KACxE0c,SAAW7kB,EAAE,kBAAkBmI,OAASmD,QAAQoV,eAAe7T,KAAK0E,KAAKjK,KACzEsB,SAAW5I,EAAE,kBAAkBmI,OAAS,IAE5C,KAAKgc,OAASA,KAAKhb,MAAM,uBAMtB,MALAnJ,GAAE,cAAcqQ,SAAS,gBAAgB0D,MAAM,WACxC/T,EAAE0G,MAAMyB,OACTnI,EAAE0G,MAAM0J,YAAY,mBAGnB,CAOV,IAJK+T,KAAKhb,MAAM,YACbgb,MAAQ,IAAMtkB,KAAK4E,QAAQE,IAAI,OAAOue,QAGrCrjB,KAAK8G,KAAK4K,KAAK0Q,IAAIwB,UAAU9K,QAAQwL,MAAQ,EAAG,CAGjD,GAAIW,eAAgB,SAASC,SAAUC,SAGpCnlB,KAAKkH,IAAIgM,OAAO9D,SAEhB8D,OAAO1G,KAAK,kBAAkBL,OAE9B+G,OAAO1G,KAAK,cAAcJ,OAAOiL,OAAO,aACrCC,MAAO,SACP,KAEHpE,OAAO1G,KAAK,cAAcC,MAAM,SAAS8C,IAKtC,MAJAA,IAAG4D,iBAEHnG,KAAK4C,KAAK0U,KAAMU,SAAUjc,SAAUmc,SAAUC,UAEvC,IAIbjS,QAAO1G,KAAK,aAAa0C,OAAO/O,EAAE,OAAOmM,KAAKnM,EAAEgJ,EAAE,6BAA6BqH,SAAS,iBACxFxQ,KAAKkH,IAAIgM,OAAO9D,SAEhBpC,KAAK0E,KAAKmS,MAAMhT,KAAKyT,KAAM,KAAM,SAAS3S,QACvCuB,OAAO1G,KAAK,aAAapI,KAAK,MAAQjE,EAAEgJ,EAAE,gBAAkB,OAE5D,IAAIic,OAAQjlB,EAAE,UAEdA,GAAEwR,QAAQnF,KAAK,WAAWpE,KAAK,WAC5B,GAAIid,SAAUllB,EAAE0G,MAAMoJ,KAAK,MAE3B,IAAgB,KAAZoV,SAAkB1f,KAAK2f,OAAOD,SAAU,CACzC,GAAIE,IAAKplB,EAAE,OACXA,GAAE,QAAQmM,KAAKnM,EAAEgJ,EAAEkc,QAAU,aAAavQ,SAASyQ,IACnDplB,EAAE,QAAQmM,KAAKnM,EAAEgJ,EAAEkc,QAAU,iBAAiBvQ,SAASyQ,IACvDA,GAAGzQ,SAASsQ,UAIlBlS,OAAO1G,KAAK,aAAa0C,OAAOkW,MAEhC,IAAIF,UAAW/kB,EAAEwR,QAAQnF,KAAK,YAAYyD,KAAK,QAC3CkV,QAAUhlB,EAAEwR,QAAQnF,KAAK,qCAAqCyD,KAAK,QAIvEgV,eAAcC,SAAUC,UACxB,WACAjS,OAAO1G,KAAK,aAAaR,QACzB7L,EAAE,OAAOmM,KAAKnM,EAAEgJ,EAAE,oBAAoB2L,SAAS5B,OAAO1G,KAAK,cAE3DyY,sBAGH/R,QAAO1G,KAAK,iBAAiBF,KAAKnM,EAAEgJ,EAAE,gCAGzC,QAAO,IAGV+J,OAAO1G,KAAK,SAASgZ,QAAQ,SAASjW,IAEnC,MAAiB,MAAbA,GAAGqM,OAGJ1I,OAAO1G,KAAK,iBAAiBR,aAEzBkH,OAAO1G,KAAK,kBAAkBkG,GAAG,aAClCQ,OAAO1G,KAAK,kBAAkBJ,OAC9B8G,OAAO1G,KAAK,cAAcL,OAAOpF,IAAI,SACrCmM,OAAO1G,KAAK,aAAaR,QACzBhM,KAAKkH,IAAIgM,OAAO9D,iBAMjB8D,OAAO1G,KAAK,kBAAkBkG,GAAG,WAGnCQ,OAAO1G,KAAK,cAAcC,QAF1ByG,OAAO1G,KAAK,kBAAkBC,YAiBvCmD,KAAM,SAAS0U,KAAMU,SAAUjc,SAAUmc,SAAUC,SAChD,GAAInY,MAAOhN,KAAKoiB,GAEhBpiB,MAAK6D,QAAQ+D,YAAY,QAAS0c,MAC/B7c,IAAK6c,KACLvV,KAAMmW,UAAYZ,KAClB1T,IAAK,OACLkB,KAAM,YACN4K,MAAO1P,KAAK3L,MAAM0hB,UAAUC,KAC5BmC,QAASA,UAGZnlB,KAAK8G,KAAK4K,KAAK0Q,IAAIxS,KAAK0U,KAAMU,SAAU,KAAM,KAAM,KAAMjc,WAS7D0c,MAAO,SAASnB,MACb,GAAItX,MAAOhN,KAAKoiB,IACZsD,IAAM1lB,KAAK6D,QAAQoB,YAAY,oBAC/BtB,KAAO3D,KAAK6D,QAAQoB,YAAY,QAASqf,SAEzC3gB,MAAK+Y,QAAU1P,KAAK3L,MAAM0hB,UAAUE,QACrCjW,KAAK0E,KAAK0Q,IAAIqD,MAAMnB,KAAMoB,IAAIpB,MAAO,WAClCtX,KAAK2Y,SAASrB,QAGjBtX,KAAK2Y,SAASrB,OAWpBqB,SAAU,SAASrB,MAChB,GAAItX,MAAOhN,KAAKoiB,IACZsD,IAAM1lB,KAAK6D,QAAQoB,YAAY,mBAEnCjF,MAAK6D,QAAQ+D,YAAY,YAAaoF,KAAK0E,KAAK0Q,IAAIwB,iBAE7C8B,KAAIpB,MACXtkB,KAAK6D,QAAQ+D,YAAY,eAAgB8d,KACzC1lB,KAAK6D,QAAQiU,eAAe,SAAUwM,MACtCtkB,KAAK6D,QAAQiU,eAAe,OAAQwM,MAEpCtkB,KAAKkH,IAAIf,OAAO0N,MAAMyQ,MACtBtkB,KAAKkH,IAAIW,OAAOyT,MAAMgJ,OAWzBsB,QAAS,SAAStB,KAAMuB,WAAYC,UACjC,GAAI9Y,MAAOhN,KAAKoiB,GAEhBpiB,MAAK6D,QAAQ+P,eAAe,QAAS0Q,KAAM,QAAStX,KAAK3L,MAAM0hB,UAAUI,mBACzEnjB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,4BAE7C,IAAI4S,IAAKC,KACNzb,GAAI+jB,KACJxS,KAAM,QACNmK,EAAE,SACFC,MAAOzQ,QAAQvJ,GAAG6jB,YAClB9J,EAAE,UAELjc,MAAKoiB,IAAI1Q,KAAKyK,OAAOJ,GAAGiK,OAAQH,WAAYC,WAS/CjS,MAAO,SAASyQ,MACb,GAAItX,MAAOhN,KAAKoiB,IACZ6D,SAAWjmB,KAAK6D,QAAQoB,YAAY,QAASqf,SAEjDtX,MAAKkZ,aAAa5B,KAElB,IAAIC,WAAYvX,KAAK0E,KAAK0Q,IAAIwB,UAAU9K,QAAQwL,KAE5CC,WAAY,KACbvX,KAAK0E,KAAK0Q,IAAIwB,UAAUY,OAAOD,UAAW,SACnCvX,MAAK0E,KAAK0Q,IAAIqC,MAAMH,OAG9BtkB,KAAK6D,QAAQ+D,YAAY,YAAaoF,KAAK0E,KAAK0Q,IAAIwB,WAEhDqC,SAASvJ,QAAU1P,KAAK3L,MAAM0hB,UAAUI,mBACzCnW,KAAK2Y,SAASrB,MAGjB2B,SAASvJ,MAAQ1P,KAAK3L,MAAM0hB,UAAUK,UAEtCpjB,KAAK6D,QAAQ+D,YAAY,QAAS0c,KAAM2B,WAW3CE,WAAY,SAASlI,MAAOzP,KACzB,GAAIxB,MAAOhN,KAAKoiB,IACZze,KAAO6K,IAAI7K,OACXvC,IAAMpB,KAAKiH,SAAStD,KAAK8D,KACzBwe,SAAWjmB,KAAK6D,QAAQoB,YAAY,QAAS7D,IAEjD,KAAKpB,KAAK8G,KAAK4K,KAIZ,WAHAvR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrCgG,KAAKmZ,WAAW,KAAM3X,MAK5B,MAAIxB,KAAK0E,KAAK0Q,IAAIwB,UAAU9K,QAAQnV,KAAK8D,KAAO,GAAhD,CAIA+G,IAAIgC,SAAS,iBAEb,IAAIkV,KAAM1lB,KAAK6D,QAAQoB,YAAY,oBAC/BmhB,YAAcV,IAAItkB,KAClBilB,OAASlmB,EAAE,mCAEfqO,KAAIhC,KAAK,gCAAgC8Z,MAAMD,OAE/C,IAAIE,IAAKpmB,EAAE,+CACXqO,KAAIhC,KAAK,cAActI,QAAQqiB,IAE/BA,GAAG9f,GAAG,QAAS,SAAS8I,IACrBvP,KAAKoiB,IAAIoE,mBAAmBplB,IAAMmO,GAAGC,cAAcC,WAAa,EAAK,GAAK,MAI7E,IAAIgX,UAAW,SAASlX,IACjBA,IACDA,GAAG4D,gBAGN,IAAIuT,gBACAnU,GAAKgU,GAAG/Z,KAAK,YACbma,WAAa,IAIjB,IAFAJ,GAAG3T,YAAY,eAEX2T,GAAG/N,SAAS,eAAgB,CAC7BrY,EAAE,QAAQsM,QACVtM,EAAE,QAAQ6G,IAAI,QAASyf,UAEvBlU,GAAGM,WAAW,WACXN,GAAG5O,KAAK,QAASwC,OAAOsE,WAAWgc,SAAU,QAC7C3T,WAAW,WACX3M,OAAO4E,aAAawH,GAAG5O,KAAK,YAC5B2N,IAAI,OAAQ,MAEf,IAAIsV,WAAkD,GAAtCpY,IAAIhC,KAAK,kBAAkBqJ,SACvC2H,YAAc+I,GAAG/Z,KAAK,MAAMqJ,SAAW,CAC3C8Q,YAAcnJ,YAAcoJ,UAAaA,UAAYpJ,YAErDkJ,aACGnM,SAAU,MACV1E,OAAQ8Q,WAAa,KACrB5U,MAAO,OACPuF,MAAO,OACPkD,QAAS,OAGZ+L,GAAGjV,IAAI,SAAUqV,WAAa,UAE9BD,cACGd,SAAS,GAGZrT,GAAGtC,KAAK,QAAS,IACjBsW,GAAGjV,IAAI,SAAU,IAEjBnL,OAAO4E,aAAawH,GAAG5O,KAAK,UAC5BxD,EAAE,QAAQ4G,IAAI,QAAS,KAAM0f,UAC7BlU,GAAGxL,IAAI,wBAKV,OAFAwL,IAAGsU,WAAWH,cAEP,EAGVL,QAAO5Z,MAAMga,UAEbjY,IAAI/H,GAAG,SAAU,WAEdzG,KAAKoiB,IAAIoE,mBAAmBplB,IAAK,KAIpCqJ,WAAW,WACR,GAAI4T,KAAM7P,IAAIhC,KAAK,mBAAmB4R,WAAWC,IAAM7P,IAAIhC,KAAK,kBAAkB4R,WAAWC,GAC7F7P,KAAIhC,KAAK,mBAAmB8E,IAAI,MAAO+M,IAAM,OAC7C,IAEH,IAAIuH,SAAUzlB,EAAE,OAUhB,IATAylB,QAAQtZ,KAAKnM,EAAEgJ,EAAE,YACjByc,QAAQpV,SAAS,gBACjBoV,QAAQzZ,OACRyZ,QAAQnZ,MAAM,WACXO,KAAK4Y,QAAQxkB,OAGhBoN,IAAIhC,KAAK,qBAAqB0C,OAAO0W,SAEjCK,SAASvJ,MAAQ1P,KAAK3L,MAAM0hB,UAAUC,KAAM,CAC7C,GAAI8D,QAAS9mB,KAAK6D,QAAQoB,YAAY,SAAU7D,QAEhDjB,GAAEiI,KAAK0e,OAAQ,SAAS9B,SAAU1c,KAC/B0E,KAAK+Z,aAAa3lB,IAAK4jB,SAAU1c,KAE7B0c,WAAaoB,aAAe9d,IAAI0e,cAAgBha,KAAK3L,MAAMghB,YAAYI,OACxEmD,QAAQxZ,SAKjB,GAAIqZ,OAAQtlB,EAAE,OACdslB,OAAMnZ,KAAKnM,EAAEgJ,EAAE,UACfsc,MAAMjV,SAAS,cACfiV,MAAMhZ,MAAM,WACTO,KAAKyY,MAAMrkB,OAGdoN,IAAIhC,KAAK,qBAAqB0C,OAAOuW,SAaxClC,WAAY,SAAStF,MAAO5J,KAAM5D,OAAQwW,UACvC,GAAIja,MAAOhN,KAAKoiB,IACZkC,KAAOtkB,KAAKiH,SAASoN,MACrB6S,MAAQ/mB,EAAE8mB,UAAUza,KAAK,aAAef,QAAQvJ,GAAG+hB,IAAM,KAE7D,IAAIjX,KAAK0E,KAAK0Q,IAAIwB,UAAU9K,QAAQwL,MAAQ,GAAsB,IAAjB4C,MAAMvgB,OACpD,OAAO,CAGV,IAAIoP,KAAMtK,QAAQ0b,mBAAmB9S,OAAS,GAC1C2Q,SAAWvZ,QAAQ2b,aAAarR,KAChC2P,IAAM1lB,KAAK6D,QAAQoB,YAAY,oBAC/B6hB,OAAS9mB,KAAK6D,QAAQoB,YAAY,SAAUqf,UAC5C+C,QAUJ,IARAH,MAAM1a,KAAK,UAAUpE,KAAK,WACvB,GAAIkf,MAAOnnB,EAAE0G,MAAMoJ,KAAK,OAExBjQ,MAAKyD,MAAM,cAAe6jB,MAE1BD,MAAM9e,KAAK+e,QAG+B,IAAzCtnB,KAAKkH,IAAIW,OAAO/D,QAAQwgB,MAAM3d,OAAc,CAG7C3G,KAAK6D,QAAQ+D,YAAY,YAAa5H,KAAK8G,KAAK4K,KAAK0Q,IAAIwB,WAGzD5jB,KAAK6D,QAAQiU,eAAe,OAAQwM,MACpCwC,SAEA,IAAIS,IAAKvnB,KAAK6D,QAAQoB,YAAY,YAClCsiB,IAAGhf,KAAK+b,MACRtkB,KAAK6D,QAAQ+D,YAAY,YAAa2f,IAEtCvnB,KAAKkH,IAAIW,OAAOiE,IAAIwY,MAEpBtkB,KAAKkH,IAAIf,OAAOsI,KAAK6V,MACrBtkB,KAAKkH,IAAIgM,OAAOW,QAGnB,GAAIpM,KAAMyf,MAAM1a,KAAK,QAAQyD,KAAK,QAAU,IAE5C,IAAe,IAAXQ,OACD,GAAIyW,MAAM1a,KAAK,WAAW7F,OAAS,EAEhCmgB,UAEA9mB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,8BAE7C6D,KAAK6G,MAAMyQ,UACP,OACGwC,QAAO9B,UAEdhY,KAAKwa,aAAalD,KAAMU,SAExB,IAAIyC,aAAcP,MAAM1a,KAAK,QAAQyD,KAAK,OAEtCoX,OAAMvO,QAAQ,OAAS,IAAM2O,aAG9BA,YAAchc,QAAQ2b,aAAaK,aAGnCX,OAAOW,gBAEPznB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,mBAC1Cue,YAAa1C,SACbyC,YAAaA,YACbE,qBAAqB,OAEC,IAAjBN,MAAM1gB,QAAkC,IAAjB0gB,MAAM1gB,QAAgB0gB,MAAMvO,QAAQ,OAAS,KAE5E9Y,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,qBAC1C6b,SAAUA,SACV2C,qBAAqB,UAOzBb,OAAO9B,WAAaU,IAAIpB,OAC1BtkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,oBAC1C6b,SAAUA,SACV2C,qBAAqB,KAI3Bb,OAAO9B,WACJvd,IAAKA,IACLgJ,OAAQA,OACRmX,QAASvT,KACT2S,YAAaE,MAAM1a,KAAK,QAAQyD,KAAK,eACrC4X,KAAMX,MAAM1a,KAAK,QAAQyD,KAAK,SAGjCjD,KAAK+Z,aAAazC,KAAMU,SAAU8B,OAAO9B,UAe5C,OAZAhlB,MAAK6D,QAAQ+D,YAAY,SAAU0c,KAAMwC,QAEzC3mB,EAAEiI,KAAKif,MAAO,SAAShf,MAAOif,MAGQ,kBAAxBta,MAAK8a,SAASR,OACtBta,KAAK8a,SAASR,MAAMtf,KAAKnB,KAAMyd,KAAMU,SAAU8B,OAAO9B,cAAiBkC,OAG1E/mB,EAAEqG,UAAUoD,QAAQ,mBAAoB0d,KAAMhD,KAAMU,SAAU8B,OAAO9B,cAAiBiC,cAGlF,GAYVzD,gBAAiB,SAASvF,MAAO5J,KAAM4S,UACpC,GAAIja,MAAOhN,KAAKoiB,IACZ8E,MAAQ/mB,EAAE8mB,UAAUza,KAAK,YAAcf,QAAQvJ,GAAG+hB,IAAM,MACxDK,KAAOtkB,KAAKiH,SAASoN,KAEzB,IAAqB,IAAjB6S,MAAMvgB,QAAgBqG,KAAK0E,KAAK0Q,IAAIwB,UAAU9K,QAAQwL,MAAQ,EAC/D,OAAO,CAGV,IAAI5f,OAAQvE,EAAE8mB,UAAUza,KAAK,SACzB6X,UAAY3f,MAAM+R,WAAW,GAAGC,OAMpC,OAJA1W,MAAKyD,MAAM,eAAgB4gB,WAE3BlkB,EAAEqG,UAAUoD,QAAQ,kBAAmBya,UAAWC,QAE3C,GAQVwD,UAEGC,IAAK,SAASzD,KAAMU,SAAUrhB,MAC3B,GAAIqJ,MAAOhN,KAAKoiB,IACZsD,IAAM1lB,KAAK6D,QAAQoB,YAAY,mBAEnCygB,KAAIpB,MAAQU,SACZhlB,KAAK6D,QAAQ+D,YAAY,eAAgB8d,KAErC/hB,KAAKqjB,cAAgBha,KAAK3L,MAAMghB,YAAYI,OAC7CziB,KAAKkH,IAAIf,OAAOrB,IAAIwf,MAAM9X,KAAK,iBAAiBJ,MAGnD,IAAI6Z,UAAWjmB,KAAK6D,QAAQoB,YAAY,QAASqf,KAE7C2B,UAASvJ,QAAU1P,KAAK3L,MAAM0hB,UAAUC,OACzCiD,SAASvJ,MAAQ1P,KAAK3L,MAAM0hB,UAAUE,QAEtCjjB,KAAK6D,QAAQ+D,YAAY,QAAS0c,KAAM2B,YAI9C+B,IAAK,SAAS1D,MACXtkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,6BAGhD8e,IAAK,SAAS3D,MACX,GAAItX,MAAOhN,KAAKoiB,GAGhBpV,MAAK0E,KAAK0Q,IAAI8F,kBAAkB5D,OAGnC6D,IAAK,SAAS7D,KAAMU,SAAUrhB,KAAMujB,OACjC,GAAIxB,KAAM1lB,KAAK6D,QAAQoB,YAAY,mBAE/BygB,KAAIpB,QAAUU,UACfhlB,KAAKoiB,IAAIvO,MAAMyQ,MACftkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,uBAE7CnJ,KAAKoiB,IAAIgG,WAAW9D,KAAM4C,QAE1BlnB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,2BAC1C6b,SAAUA,SACV2C,qBAAqB,MAK9BU,IAAK,SAAS/D,KAAMU,SAAUrhB,KAAMujB,OACjC,GAAIxB,KAAM1lB,KAAK6D,QAAQoB,YAAY,mBAE/BygB,KAAIpB,QAAUU,UACfhlB,KAAKoiB,IAAIvO,MAAMyQ,MACftkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,uBAE7CnJ,KAAKoiB,IAAIgG,WAAW9D,KAAM4C,QAE1BlnB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,2BAC1C6b,SAAUA,SACV2C,qBAAqB,MAK9BW,IAAK,SAAShE,KAAMU,UACjB,GAAIU,KAAM1lB,KAAK6D,QAAQoB,YAAY,mBAE/BygB,KAAIpB,QAAUU,UACfhlB,KAAKoiB,IAAIvO,MAAMyQ,MACftkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,6BAE7CnJ,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,gCAC1C6b,SAAUA,SACV2C,qBAAqB,MAQ9BY,IAAK,SAASjE,KAAMU,UACjB,GAAIU,KAAM1lB,KAAK6D,QAAQoB,YAAY,mBAE/BygB,KAAIpB,QAAUU,UACfhlB,KAAKoiB,IAAIvO,MAAMyQ,MACftkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,6BAE7CnJ,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,gCAC1C6b,SAAUA,SACV2C,qBAAqB,MAQ9Ba,IAAK,SAASlE,MACXtkB,KAAKoiB,IAAIvO,MAAMyQ,MACftkB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,2BAWnDif,WAAY,SAAS9D,KAAM4C,OACxB,GAAIuB,QACD1Z,KAAMmY,MAAM1a,KAAK,SAASyD,KAAK,QAC/BxI,IAAKyf,MAAM1a,KAAK,SAASyD,KAAK,QAE7ByY,OAASxB,MAAM1a,KAAK,UAAUF,MAEnB,MAAXoc,SACDA,OAASvoB,EAAEgJ,EAAE,UAAY,KAAOuf,OAEN,gBAAfD,OAAM1Z,MAA0C,gBAAd0Z,OAAMhhB,IAChDzH,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,KAAMoE,QAAQ,GAAO,EAAO,KAAMD,OAEpEzoB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOoE,UAalD3B,aAAc,SAASzC,KAAMU,SAAU2D,YACpC,GAAI3b,MAAOhN,KAAKoiB,IACZ5T,IAAMxO,KAAKkH,IAAIf,OAAOrB,IAAIwf,MAC1B7c,IAAMkhB,WAAWlhB,IACjBmhB,EAAIpa,IAAIhC,KAAK,sCAAwCwY,SAAW,KAEpE,IAAiB,IAAb4D,EAAEjiB,OAAc,CACjB,GAAI0Z,OAAQrgB,KAAK0M,WAAWsY,SAO5B,IALA4D,EAAIzoB,EAAE,oEACNyoB,EAAE3Y,KAAK,gBAAiB+U,UAExBxW,IAAIhC,KAAK,uBAAuB0C,OAAO0Z,GAEpB,gBAARnhB,KAAkB,CAC1BmhB,EAAEpc,KAAK,cAAcF,KAAKtM,KAAKiH,SAASQ,MACxCmhB,EAAE3Y,KAAK,WAAYjQ,KAAKiH,SAASQ,MACjC4Y,MAAQA,MAAQ,KAAOrgB,KAAKiH,SAASQ,IAErC,IAAI9D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASQ,KAE9C,QAAT9D,MAAiC,gBAATA,MACzB3D,KAAKkH,IAAIsD,aAAaoe,EAAG5oB,KAAKiH,SAASQ,KAAM9D,KAAKmN,QAC1C9Q,KAAKiH,SAASQ,OAASzH,KAAKiH,SAAS+F,KAAK0E,KAAKjK,MACvDzH,KAAKkH,IAAIsD,aAAaoe,EAAG5oB,KAAKiH,SAASQ,KAAM,WAGhDmhB,GAAEpc,KAAK,cAAcF,KAAK0Y,UAE1BhlB,KAAKkH,IAAIkK,kBAAkBwX,EAAEpc,KAAK,gBAAiBwY,SAGtD4D,GAAE3Y,KAAK,QAASoQ,SAWtBmH,aAAc,SAASlD,KAAMU,UAC1B,GAAIxW,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAIwf,MAC1BsE,EAAIpa,IAAIhC,KAAK,sCAAwCwY,SAAW,KAEhE4D,GAAEjiB,OAAS,GACZiiB,EAAEja,UAWR6X,mBAAoB,SAASlC,KAAMtS,QAChC,GAAIxD,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAIwf,KAE9B,KAAI9V,IAAIhC,KAAK,oBAAoBgM,SAAS,eAA1C,CAIA,GAAIzH,IAAKvC,IAAIhC,KAAK,6BACdyF,YAAclB,GAAGgB,QACjBA,MAAQvD,IAAIhC,KAAK,oBAAoBuF,QACrC4M,KAAOlc,SAASsO,GAAGO,IAAI,QAE3BqN,MAAQkK,MAAMlK,MAAS,EAAI3M,OAAS2M,KAAO3M,OAEzBD,MAAdE,aAAuB0M,KAAO,EAC/BA,KAAO,EACQ5M,MAAQE,YAAf0M,OACRA,KAAO5M,MAAQE,aAGlBlB,GAAGO,IAAI,OAAQqN,KAAO,QASzBuH,aAAc,SAAS5B,MACpB,GAAI9V,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAIwf,KAE9B9V,KAAIhC,KAAK,oBAAoBR,QAE7BhM,KAAK6D,QAAQ+D,YAAY,SAAU0c,UAWtCZ,mBAAoB,SAASpV,SAC1B,GAAI4I,IAAK/W,EAAEmO,SAAS2B,KAAK,KAEzB,IAAIjQ,KAAKwH,UAAUrH,EAAE,IAAM+W,KAExB,OAAO,CAGV,IAAI7C,MAAOlU,EAAEmO,SAAS2B,KAAK,QACvBvB,KAAOvO,EAAEmO,SAAS9B,KAAK,cAAcF,OACrCgY,KAAOtkB,KAAKiH,SAASoN,MACrB2Q,SAAWvZ,QAAQ2b,aAAa3b,QAAQ0b,mBAAmB9S,MAE/D,IAAa,KAAT3F,KAAa,CACd,GAAIqB,OAAQ5P,EAAEmO,SAAS9B,KAAK,iCACxB6S,MAAStP,MAAMpJ,OAAS,EAAK,GAAInE,MAAKuN,MAAME,KAAK,UAAY,GAAIzN,KACrE6c,OAAQA,MAAM7b,SAEd,IAAIsjB,QAAS9mB,KAAK6D,QAAQoB,YAAY,SAAUqf,UAE5ChF,SACJA,QAAOvQ,KAAOiW,SAEV8B,OAAO9B,WAA6C,gBAAzB8B,QAAO9B,UAAUvd,MAC7C6X,OAAO7X,IAAMqf,OAAO9B,UAAUvd,KAGjCzH,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,KAAM5V,MAAM,GAAO,EAAO2Q,MAAOC,QAGtE,GAAI6F,SAAUhlB,EAAEmO,SAAS9B,KAAK,UAE9B,IAAI2Y,QAAQxe,OAAS,EAAG,CACrB,GAAIsf,UAAWjmB,KAAK6D,QAAQoB,YAAY,QAASqf,KAEjD2B,UAASd,QAAUA,QAAQ7Y,OAE3BtM,KAAK6D,QAAQ+D,YAAY,QAAS0c,KAAM2B,UAExCjmB,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,sBAC1C6b,SAAUA,SACVG,QAASA,QAAQ7Y,UAIvB,OAAO,GAUVqX,eAAgB,SAASrV,SACtB,GAAIgW,MAAOtkB,KAAKiH,SAAS9G,EAAEmO,SAAS2B,KAAK,QAEzC,OAAyC,KAArCjQ,KAAKkH,IAAIf,OAAOrB,IAAIwf,MAAM3d,QACpB,GAGNxG,EAAEmO,SAAS9B,KAAK,kBAAkB7F,OAAS,EAC5C3G,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,oCACrChJ,EAAEmO,SAAS9B,KAAK,aAAa7F,OAAS,EAC9C3G,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,+BACrChJ,EAAEmO,SAAS9B,KAAK,kBAAkB7F,OAAS,EACnD3G,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,oCAE7CnJ,KAAKkH,IAAIf,OAAO2N,YAAYwQ,KAAM,MAAOnkB,EAAEgJ,EAAE,qBAGhDnJ,KAAKyD,MAAM,2BAA6B6gB,KAAMnkB,EAAEmO,SAAS9B,KAAK,SAAS,KAEhE,IAaVsc,YAAa,SAAS7K,MAAOqG,KAAM3gB,KAAMgX,KACtC,GAAI3N,MAAOhN,KAAKoiB,GAEE,eAAdze,KAAKmO,MAIT6I,IAAInO,KAAK,gBAAgBzF,IAAI,SAAS0F,MAAM,WAEzC,MADAO,MAAKyY,MAAMnB,OACJ,MAKhBnkB,EAAEqG,UAAUC,GAAG,mBAAoBzG,KAAKoiB,IAAI+D,YAC5ChmB,EAAEqG,UAAUC,GAAG,kBAAmBzG,KAAKoiB,IAAI0G,aAE3C3oB,EAAEqG,UAAUQ,IAAI,gBAAiB,WAC9BhH,KAAKoiB,IAAIzd,SAGZxE,EAAEqG,UAAUQ,IAAI,iBAAkB,WAC/BhH,KAAK6D,QAAQiU,eAAe,aAC5B9X,KAAK6D,QAAQiU,eAAe,kBAS/B9X,KAAKya,QAEFsO,KAAM,EAONrO,KAAM,WAEHva,EAAE,sBAAsBwO,SACxBxO,EAAE,uBAAuBmM,KAAK,IAC9BtM,KAAKya,OAAOsO,KAAO,CAEnB,IAAIC,OAAQhpB,KAAK6D,QAAQoB,YAAY,eACjCF,IAAM,IAEV,KAAKA,MAAOikB,OACT,GAAIA,MAAMrT,eAAe5Q,KAAM,CAC5B,GAAIuD,KAAM0gB,MAAMjkB,IAEhB/E,MAAKya,OAAO3O,IAAIxD,IAAI5E,IAAK4E,IAAI2gB,YAAa3gB,IAAIqF,OAAQrF,IAAIsF,SAAU7I,OAe7E+G,IAAK,SAASpI,IAAKulB,YAAatb,OAAQC,SAAUsJ,IAC/C,GAAIgS,KAAMhS,IAAM1U,KAAK2mB,MACjBzU,KAAOvU,EAAE,mBACTsa,OAASta,EAAE,QAiBf,IAfAsa,OAAOhO,MAAM,WAKV,MAJAzM,MAAKya,OAAO9L,OAAOua,KAEnBlpB,KAAK0N,KAAKC,OAAQC,WAEX,IAGV6M,OAAOnO,KAAK5I,KACZ+W,OAAOxK,KAAK,QAASgZ,aAAe,IACpCxO,OAAOxK,KAAK,WAAYiZ,KACxBxU,KAAKxF,OAAOuL,QAEZta,EAAE,uBAAuBmM,OAAOtM,KAAKya,OAAOsO,OAEvC7R,GAAI,CACN,GAAI8R,OAAQhpB,KAAK6D,QAAQoB,YAAY,cACrC+jB,OAAME,MACHxlB,IAAKA,IACLulB,YAAaA,YACbtb,OAAQA,OACRC,SAAUA,UAEb5N,KAAK6D,QAAQ+D,YAAY,UAAWohB,OAEpChpB,KAAKoK,aAAagf,OAAO1lB,IAAKulB,aAAe,GAAI,MAAM,EAAMjpB,KAAKqB,MAAMK,OAAOG,UAUrF8M,OAAQ,SAASua,KACd,GAAInY,IAAK5Q,EAAE,4BAA8B+oB,IAAM,IAE/CnY,IAAGpC,SACHxO,EAAE,uBAAuBmM,OAAOtM,KAAKya,OAAOsO,MAAQ,GAEpD,IAAI3P,GAAIpZ,KAAK6D,QAAQoB,YAAY,iBAC1BmU,GAAE8P,KACTlpB,KAAK6D,QAAQ+D,YAAY,UAAWwR,IAUvCiQ,IAAK,SAAS1b,QACX,GAAIqb,OAAQhpB,KAAK6D,QAAQoB,YAAY,eACjCokB,KAAM,CAUV,OARAlpB,GAAEiI,KAAK4gB,MAAO,SAAS3gB,MAAOC,KAC3B,MAAIA,KAAIqF,SAAWA,QAChB0b,KAAM,GAEC,GAHV,SAOIA,MASbrpB,KAAKoK,cAGFkf,MAAO,KAOP3kB,KAAM,WACHxE,EAAEqG,UAAUC,GAAG,qBAAsB,SAASwX,MAAO7c,IAAKsC,KACvDA,IAAOA,IAAI4F,MAAM,UAAanJ,EAAEgJ,EAAE,qBAAuBzF,GACzD,IAAIC,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7CpB,MAAKoK,aAAagf,QACf/I,MAAOlgB,EAAEgJ,EAAE,oBAAsB,IAAMxF,KAAKoL,KAC5CrL,IAAKA,IACL6lB,UAAWvpB,KAAKqB,MAAMK,OAAOC,IAC7Bme,OAAQ1e,QAIdjB,EAAEqG,UAAUC,GAAG,sBAAuB,WACnCzG,KAAKoK,aAAaof,UAAUxpB,KAAKqB,MAAMK,OAAOE,MAAM,GAAM,KAG7DzB,EAAEqG,UAAUC,GAAG,oCAAqC,WACjDzG,KAAKoK,aAAaqf,eAexBL,OAAQ,SAAS/I,MAAO3c,IAAKO,EAAGylB,MAAOH,UAAWI,KAAM7J,QACrD,GAAK9f,KAAK4E,QAAQwF,cAAiBpK,KAAKoK,aAAaE,gBAArD,CAIA,GAAIuS,EAgBJ,IAbGA,EADW,OAAVwD,OAAmC,gBAAVA,OACtBA,OAGDA,MAAOA,MACP3c,IAAKA,IACL0Y,SAAUnY,EACVylB,MAAOA,MACPH,UAAWA,UACXI,KAAMA,KACN7J,OAAQA,SAIV9f,KAAKwN,YAAeqP,EAAE6M,MAA1B,CAIA,GAAIE,MAAO/M,EAAE+M,MAAQ5pB,KAAK4E,QAAQkc,KAAO,oBAEzC,IAAwB,gBAAbjE,GAAEiD,OAAqB,CAC/B,GAAInc,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS4X,EAAEiD,QAC3C5O,IAAMlR,KAAK6D,QAAQoB,YAAY,SAAUtB,KAAKmN,OAE/B,iBAARI,MAA4B,MAARA,MAC5B0Y,KAAO1Y,KAIblR,KAAKS,eAAiBgK,WAAW,WAEH,gBAAhBoS,GAAE0M,WACVvpB,KAAKoK,aAAaof,UAAU3M,EAAE0M,UAAW1M,EAAE8M,KAAM9M,EAAE6M,MAGtD,IAAIG,OAAQ,GAAIC,cAAa3pB,EAAEgJ,EAAE0T,EAAEwD,QAChC3R,KAAMvO,EAAEgJ,EAAE0T,EAAEnZ,KACZkmB,KAAMA,OAGLxN,SAAWS,EAAET,UAAYpc,KAAK4E,QAAQmlB,aAEtC3N,UAAW,GACZ3R,WAAW,WACRof,MAAMhW,SACNuI,WAENpc,KAAKU,wBASX2J,WAAY,WACT,GAAIlE,OAAO6jB,oBAAqB,CAG7B7jB,OAAO2jB,aAAe,SAASzJ,MAAOvD,KACnC,GAAI+M,OAAQ1jB,OAAO6jB,oBAAoBC,mBAAmB,KAAM5J,MAAOvD,IAAIpO,KAO3E,OANAmb,OAAMzd,OAENyd,MAAMhW,MAAQ,WACXgW,MAAMK,UAGFL,MAGV,IAAIM,WACJ,QAAQhkB,OAAO6jB,oBAAoBI,mBAChC,IAAK,GACFD,WAAanqB,KAAKqB,MAAME,oBACxB,MACH,KAAK,GACF4oB,WAAanqB,KAAKqB,MAAMG,mBACxB,MACH,SACG2oB,WAAanqB,KAAKqB,MAAMC,qBAQ9B,MANA6E,QAAO2jB,aAAaK,WAAaA,WAEjChkB,OAAO2jB,aAAapS,kBAAoB,SAAS2S,MAC9ClkB,OAAO6jB,oBAAoBtS,kBAAkB2S,QAGzC,EACH,MAAIlkB,QAAO2jB,cACR,GAEA,GAQbvf,eAAgB,WAETvK,KAAKya,OAAO4O,IAAI,gCAIpBlpB,EAAEqG,UAAUQ,IAAI,qBAAsB,WACnCyD,WAAW,WACRzK,KAAKya,OAAO3O,IAAI3L,EAAEgJ,EAAE,iBAAmB,IAAKhJ,EAAEgJ,EAAE,yBAA0B,gCAC1E,QAOTuO,kBAAmB,WAChBvR,OAAO2jB,aAAapS,kBAAkB,SAASjH,QACxCtK,OAAO2jB,aAAaK,aAAe1Z,SACpCtK,OAAO2jB,aAAaK,WAAa1Z,QAIjCtQ,EAAEqG,UAAUoD,QADX5J,KAAKoK,aAAaE,gBACC,yBAEA,+BAU7BA,cAAe,WACZ,MAAOnE,QAAO2jB,aAAaK,aAAenqB,KAAKqB,MAAME,sBAWxDioB,UAAW,SAASD,UAAWI,KAAMD,OAClC,GAAK1pB,KAAKK,SAKNL,KAAK4E,QAAQE,IAAI,qBAAgE,QAAzC9E,KAAK6D,QAAQoB,YAAY,eAKjEjF,KAAKwN,YAAekc,OAAxB,CAMA1pB,KAAKoK,aAAaqf,WAElB,IAAIH,OAAQ,GAAIgB,OAAMtqB,KAAK4E,QAAQkc,KAAO,UAAYyI,UACtDD,OAAMK,KAAOA,OAAQ,EACrBL,MAAMiB,OAENvqB,KAAKoK,aAAakf,MAAQA,QAQ7BG,UAAW,WACR,GAAIH,OAAQtpB,KAAKoK,aAAakf,KAET,oBAAVA,QAAmC,OAAVA,QACjCA,MAAMkB,QACNxqB,KAAKoK,aAAakf,MAAQ,OAWhClR,UAAW,SAASH,UACjB9X,EAAE,qCAAqCmM,KAAKnM,EAAEgJ,EAAE,WAE5C8O,YAAa,GACdjY,KAAK4E,QAAQM,IAAI,oBAAoB,IAW3CmT,YAAa,SAASJ,UACnB9X,EAAE,qCAAqCmM,KAAKnM,EAAEgJ,EAAE,SAE5C8O,YAAa,GACdjY,KAAK4E,QAAQM,IAAI,oBAAoB,KAU9ClF,KAAK4E,SAGFmc,SAAU,mBAGVlW,QAAS,IAGTI,YAAa,KAGb/E,KACG6D,QAAQ,EACR0gB,iBAAiB,EACjBhnB,OAAO,EACPinB,qBAAqB,EACrBC,sBAAsB,GAIzB7jB,MACG+Y,IAAK,KACLpY,IAAK,KACL4B,OAAQ,KACRN,SAAU,KACVkO,WAAW,EACXtO,SAAS,GAIZiiB,UACGC,OAAQ,EACR7L,KAAM,EACN8L,KAAM,EACNC,GAAI,EACJC,IAAK,GAIR1jB,WAEGC,KAAM,KAGNE,IAAK,KAGLC,KAAM,KAGN6B,OAAQ,SAAS9B,KACd,MAAOA,MAOVwB,aAAc,SAMdgiB,YAAa,SAMbjY,WAAY,UAIftM,cAAe,KAGfwkB,YAAa,GAGbxlB,YAAa,KAGbJ,UAAU,EAGV4U,aAAc,OAGd9P,cAAc,EAGd2f,cAAe,IAGfjJ,KAAM,GAGNva,aAAc,IAMdoB,uBAAwB,WACrB,OAAO,GAIVwS,aAAa,EAGbgR,kBAAkB,EAQlBha,cAAe,SAAS1J,KACrBzH,KAAKkH,IAAIkK,kBAAkBjR,EAAE0G,MAAM2F,KAAK,gBAAiB/E,MAW5DuB,aAAc,aAWdoO,qBAAsB,aAItBgU,SAEGrhB,QAAQ,GAkBX0K,SAAU,MAMbzU,KAAKkG,KAEFyN,WAEA0X,YAAa,KAYbC,eAAgB,SAASrnB,GACtB,GAAI7C,KAAM6C,EAAE7C,GAERpB,MAAKkG,IAAIyN,QAAQvS,KAAKsP,WAAa4C,IAAIjS,MAAMkqB,oBAC9CvrB,KAAKkG,IAAIslB,OAAOpqB,KAGfpB,KAAKkG,IAAIyN,QAAQvS,KAAKsP,WAAa4C,IAAIjS,MAAMkqB,oBAAuBtnB,EAAEkb,UAGvEnf,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,KAAM6C,EAAEP,IAAKO,EAAEkb,UAAWlb,EAAEmb,UAAWnb,EAAEob,OAF1Erf,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,mCAAqC,MAAQlF,EAAEP,IAAM,IAAKO,EAAEkb,UAAWlb,EAAEmb,UAAWnb,EAAEob,QAYxIM,YAAa,SAASlY,IAAK/D,IAAKiR,KACyB,IAAlD3U,KAAKkG,IAAIyN,QAAQ3T,KAAKiH,SAASQ,MAAMiJ,UACtC1Q,KAAKkG,IAAIslB,OAAOxrB,KAAKiH,SAASQ,MAGjCzH,KAAK8G,KAAK2kB,aAAahkB,IAAK/D,IAAKiR,MASpCzK,OAAQ,SAAS9I,KAEd,IAAIpB,KAAKkG,IAAIyN,QAAQgC,eAAevU,MAI/BpB,KAAK4E,QAAQsB,IAAIwlB,KAAtB,CAKA,GAAIC,IAAK3rB,KAAK6D,QAAQoB,YAAY,cAC9B0mB,IAAG7S,QAAQ1X,KAAO,IACnBuqB,GAAGpjB,KAAKnH,KACRpB,KAAK6D,QAAQ+D,YAAY,UAAW+jB,KAGvC3rB,KAAKkG,IAAIyN,QAAQvS,KAAO,GAAIkS,KAAItT,KAAK4E,QAAQsB,KAEzClG,KAAK4E,QAAQsB,IAAIwkB,sBAClB1qB,KAAKkG,IAAIyN,QAAQvS,KAAKspB,qBAAsB,GAG3C1qB,KAAK4E,QAAQsB,IAAIykB,uBAClB3qB,KAAKkG,IAAIyN,QAAQvS,KAAKupB,sBAAuB,GAGhD3qB,KAAKkG,IAAIyN,QAAQvS,KAAKqF,GAAG,SAAU,SAASgK,QACzC,GAAI9M,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE7C,IAAa,OAATuC,KAAJ,CAIA,OAAQ8M,QACL,IAAK6C,KAAIjS,MAAMuqB,kBACZ5rB,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,wCAC5C,MACH,KAAKmK,KAAIjS,MAAMwqB,mBACZloB,KAAKsd,YAAcjhB,KAAKkG,IAAIyN,QAAQvS,KAAK0qB,cAAc7K,cACvDtd,KAAK+M,SAAW4C,IAAIjS,MAAMkS,kBAE1B,IAAI7P,KAAqCvD,EAAEgJ,EAAhCnJ,KAAKkG,IAAIyN,QAAQvS,KAAKuP,MAAY,WAAkB,cAAiB,IAAMxQ,EAAEgJ,EAAE,+BAC1FnJ,MAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOsC,IACxC,MACH,KAAK4P,KAAIjS,MAAM0qB,eACZpoB,KAAKsd,YAAc,KAEfjhB,KAAKkG,IAAIyN,QAAQvS,KAAKsP,WAAa4C,IAAIjS,MAAMkqB,oBAG9C5nB,KAAK+M,SAAW4C,IAAIjS,MAAMkqB,mBAC1BvrB,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,mCAK5CxF,KAAK+M,SAAW4C,IAAIjS,MAAMme,kBAC1Bxf,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,sEAE/C,MACH,KAAKmK,KAAIjS,MAAM2qB,kBACZhsB,KAAK8K,gBAIX9K,KAAK6D,QAAQ+D,YAAY,QAASxG,IAAKuC,MAGvC3D,KAAKkH,IAAIgJ,OAAO9O,QAGnBpB,KAAKkG,IAAIyN,QAAQvS,KAAKqF,GAAG,MAAO,SAASqL,KAAMnO,MAC5C,OAAQmO,MACL,IAAK,WAGF,GAFA9R,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,oCAExChJ,EAAE,gBAAgBwG,OAAS,EAAG,CAC/B3G,KAAKkG,IAAIyN,QAAQvS,KAAK6qB,GAAGC,OACzB,OAGHlsB,KAAKkG,IAAIimB,cAAc/qB,IAAKuC,MAC5B3D,KAAK6D,QAAQ+D,YAAY,OAASxG,KAC/BuC,KAAMA,MAAQ,MAGjB,MACH,KAAK,QACF3D,KAAKkG,IAAIyN,QAAQvS,KAAKuP,MAAQhN,KAC9B3D,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,QAASuC,MACnD3D,KAAKkG,IAAIslB,OAAOpqB,KAChBpB,KAAKkH,IAAIgJ,OAAO9O,KAEZuC,KACD3D,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,iCAE5CnJ,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,0BAE/CnJ,KAAK6D,QAAQiU,eAAe,OAAS1W,KACrCpB,KAAKkH,IAAIgM,OAAOW,OAChB,MACH,KAAK,QACF7T,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,0BAC5C,MACH,SACGnJ,KAAKyD,MAAM,oCAAsCqO,SAK1D9R,KAAKkG,IAAIyN,QAAQvS,KAAKqF,GAAG,KAAM,SAAS/C,IAAKyb,UAAWiN,MACrDpsB,KAAKkG,IAAIolB,gBACNlqB,IAAKA,IACLsC,IAAKA,IACLyb,UAAWA,aAAc,EACzBE,MAAO+M,KAAK/M,MACZD,UAAWgN,KAAKhN,cAKtBpf,KAAKkG,IAAIyN,QAAQvS,KAAKqF,GAAG,KAAM,SAAS/C,IAAKiR,KAC1C,GAAIlN,KAAMzH,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,QAAU3D,KAAKkG,IAAIyN,QAAQvS,KAAKqG,GAExEzH,MAAKkG,IAAIyN,QAAQvS,KAAKqG,IAAMA,IAE5BzH,KAAKkG,IAAIyZ,YAAYlY,IAAK/D,IAAKiR,OAGlC3U,KAAKkG,IAAIyN,QAAQvS,KAAKqF,GAAG,QAAS,SAASpC,KAE5B,qCAARA,KACDrE,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAO,SAAWjB,EAAEgJ,EAAE9E,MAG1DrE,KAAK0E,MAAM,SAAWL,OAGzBrE,KAAKkG,IAAItF,QAAQQ,OAUpB+qB,cAAe,SAAS/qB,IAAKuC,MAC1B3D,KAAKkH,IAAImM,iBAAiBjS,KAE1BjB,EAAE,uBAAuBsT,KAAK,gBAAkB9P,KAAO,EAAI,GAAI6P,SAC/DrT,EAAE,4BAA4BgM,OAE1BxI,MACDxD,EAAE,4BAA4BqM,KAAK,eAAelE,IAAI3E,MAAM8P,KAAK,YAAY,GAC7EtT,EAAE,4BAA4BqM,KAAK,aAAaF,KAAK,UACrDnM,EAAE,4BAA4BqM,KAAK,qBAAqBF,KAAKnM,EAAEgJ,EAAE,0CAA4C,IAAMhJ,EAAEgJ,EAAE,iCAAmChJ,EAAEgJ,EAAE,uCAE9JhJ,EAAE,4BAA4BqM,KAAK,qBAAqBF,KAAKnM,EAAEgJ,EAAE,0CAA4C,IAAMhJ,EAAEgJ,EAAE,iCAAmChJ,EAAEgJ,EAAE,qBAGjKhJ,EAAE,4BAA4BsM,MAAM,WACjCzM,KAAK6D,QAAQiU,eAAe,OAAS1W,KAEjCpB,KAAKK,QACNL,KAAKkG,IAAIyN,QAAQvS,KAAK6qB,GAAGC,WAalC/X,WAAY,SAAS/S,IAAK4S,IAAKC,OAC5BjU,KAAK8K,gBAEL9K,KAAKkG,IAAIyN,QAAQvS,KAAKirB,UAAUrY,IAAKC,OAAS,KASjDyJ,eAAgB,SAAStc,KACH,kBAARkS,OAI6C,IAApDtT,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAKsP,SACxC1Q,KAAKkG,IAAIomB,UAAUlrB,KAEnBpB,KAAKkG,IAAIqmB,QAAQnrB,OAUvBkrB,UAAW,SAASlrB,KACbpB,KAAKK,OACFL,KAAKkG,IAAIyN,QAAQgC,eAAevU,MACjCpB,KAAKkG,IAAIyN,QAAQvS,KAAKorB,eAGzBxsB,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,cAAe,IAW/DmrB,QAAS,SAASnrB,IAAKqrB,IAChBzsB,KAAKK,OACFL,KAAKkG,IAAIyN,QAAQgC,eAAevU,OACjCpB,KAAKkG,IAAIyN,QAAQvS,KAAKsrB,OAAO1kB,KAAKhI,KAAKkG,IAAIyN,QAAQvS,KAAMqrB,IACzDzsB,KAAKkG,IAAIyN,QAAQvS,KAAKuD,KAAKqD,KAAKhI,KAAKkG,IAAIyN,QAAQvS,MAEjDpB,KAAKkG,IAAIslB,OAAOpqB,MAGnBpB,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,cAAe,IAS/DoqB,OAAQ,SAASpqB,KACd,GAAIyb,GAAI7c,KAAKkG,IAAIyN,QAAQvS,KACrBujB,IAEJ,IAAU,OAAN9H,EAAJ,CAKA,GAEIhP,GAFA8e,SAAY,MAAO,mBAAoB,WAAY,YAAa,WAAY,UAAW,cAAe,cAAe,qBAAsB,SAAU,aAAc,YAAa,WAAY,YAAa,aAAc,QAAS,gBAAiB,OAAQ,oBAAqB,YAAa,gBAG/R,KAAK9e,EAAI,EAAGA,EAAI8e,QAAQhmB,OAAQkH,IAC7B8W,EAAEgI,QAAQ9e,IAAMvJ,KAAKC,UAAUsY,EAAE8P,QAAQ9e,IAGpB,QAApBgP,EAAEiP,gBACHnH,EAAEmH,cAAgBxnB,KAAKC,UAAUsY,EAAEiP,cAAcc,eAGhD/P,EAAEgQ,IAAIC,aAAqC,KAAtBjQ,EAAEgQ,IAAIC,cAC5BnI,EAAEmI,YAAcxoB,KAAKC,UAAUsY,EAAEgQ,IAAIC,cAGxC9sB,KAAK6D,QAAQ+D,YAAY,MAAOxG,IAAKujB,KAQxC/jB,QAAS,SAASQ,KACf,GAAIyb,GAAI7c,KAAKkG,IAAIyN,QAAQvS,KACrB6C,EAAIjE,KAAK6D,QAAQoB,YAAY,MAAO7D,IAExC,IAAU,OAANyb,GAAoB,OAAN5Y,EAAY,CAC3B,GAAIc,IACJ,KAAKA,MAAOd,GACT,GAAIA,EAAE0R,eAAe5Q,KAAM,CACxB,GAAIuD,KAAMhE,KAAKyoB,MAAM9oB,EAAEc,KACX,mBAARA,KAAmC,OAARuD,MAC5BA,IAAM0kB,IAAIC,YAAY3kB,MAEb,gBAARvD,KAAiC,OAARuD,IAC1BuU,EAAEgQ,IAAIC,YAAcxkB,IAEpBuU,EAAE9X,KAAOuD,IAKlBtI,KAAKkG,IAAIyN,QAAQvS,KAAOyb,EAEL,IAAfA,EAAEnM,UAAsC,OAApBmM,EAAEiP,eACvBjP,EAAEqQ,QAAQllB,KAAKhI,KAAKkG,IAAIyN,QAAQvS,MAItCpB,KAAKkG,IAAI6D,OAAO3I,MAQnB4I,UAAW,WACR,IAAIhK,KAAK4E,QAAQsB,IAAIwlB,KAArB,CAIA,GAAmB,kBAARpY,KAYR,MAXAtT,MAAKyE,KAAK,wBAEV6O,OACAA,IAAIjS,OACDkqB,mBAAqB,EACrBhY,mBAAqB,EACrBiM,kBAAqB,OAGxBxf,MAAKiK,WAKR,IAAwC,OAApCjK,KAAK6D,QAAQoB,YAAY,OAAiB,CAC3C,GAAIvB,KAAMvD,EAAEgJ,EAAE,8BACVgkB,OAAS,IAEb,IAAIC,OAGD,IACGD,OAAS,GAAIC,QAAOptB,KAAK4E,QAAQkc,KAAO,mCACzC,MAAOzc,KACNrE,KAAKyE,KAAK,8BAAgCJ,KAIhDrE,KAAKkG,IAAImlB,YAA0B,OAAX8B,OAEnBntB,KAAKkG,IAAImlB,aA0BXrrB,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,YAAa,KAAMpB,MAC3D4Q,SAAS,IAGZtU,KAAKyD,MAAM,6BAGXgH,WAAW,WACR,GAAI4iB,KAAM,GAAIL,IACdhtB,MAAKkG,IAAIonB,SAASD,MAClB,OAjCHrtB,KAAKiK,YAELkjB,OAAOI,UAAY,SAASC,GACzB,GAAI1b,MAAO0b,EAAE7pB,KAAKmO,KACdxJ,IAAMklB,EAAE7pB,KAAK2E,GAEJ,WAATwJ,KACD9R,KAAKyD,MAAM6E,KACM,SAATwJ,MACR9R,KAAKkG,IAAIonB,SAASN,IAAIS,aAAanlB,OAKzC6kB,OAAOrZ,aACJ4Z,SAAW1tB,KAAK4E,QAAQkc,KAAO,6BAA8B9gB,KAAK4E,QAAQkc,KAAO,4BAA6B9gB,KAAK4E,QAAQkc,KAAO,4BAA6B9gB,KAAK4E,QAAQkc,KAAO,kCAAmC9gB,KAAK4E,QAAQkc,KAAO,wBAAyB9gB,KAAK4E,QAAQkc,KAAO,0BAA2B9gB,KAAK4E,QAAQkc,KAAO,uBACtUxH,KAAMqU,OAAOC,UACbnqB,OAAO,SAmBbzD,MAAKyD,MAAM,kBACXzD,KAAK4E,QAAQsB,IAAIwlB,KAAOsB,IAAIS,aAAaztB,KAAK6D,QAAQoB,YAAY,QAElEjF,KAAKkG,IAAI2nB,eAOfA,WAAY,WAET7tB,KAAK6D,QAAQ+D,YAAY,mBAAoB5H,KAAK4E,QAAQsB,IAAIwlB,KAAKzK,eAE/DjhB,KAAKkG,IAAImlB,eAAgB,GAC1BrrB,KAAKiK,aASXqjB,SAAU,SAASD,KAChBrtB,KAAK6D,QAAQ+D,YAAY,MAAOylB,IAAIS,eACpC9tB,KAAK4E,QAAQsB,IAAIwlB,KAAO2B,IAGpBrtB,KAAKkG,IAAImlB,YACVrrB,KAAKkH,IAAIgM,OAAOW,QAEhB1T,EAAEiI,KAAKpI,KAAK6D,QAAQoB,YAAY,cAAe,SAASoD,MAAOC,KAC5DtI,KAAKkG,IAAIgE,OAAO5B,OAItBtI,KAAKkG,IAAI2nB,cAGZ9jB,OAAQ,SAAS3I,KACdpB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKoL,KAAK,aAAa+D,YAAY,mBAW1DvQ,KAAK6D,SAMFkqB,OAAQ,OAERC,IAAK,IAOLC,UAAW,SAASC,IACjB,GAAIlhB,MAAOhN,KAAK6D,OAEhB,OAAOmJ,MAAK+gB,OAAS/gB,KAAKghB,KAAQE,IAAMluB,KAAKoB,IAAOpB,KAAKoB,IAAM4L,KAAKghB,IAAM,KAW7EnkB,QAAS,SAAS9E,IAAKI,MAAO+oB,IAGvBluB,KAAKkB,kBAAoB,GAAa,QAAR6D,KAAyB,iBAARA,MAC5C/E,KAAKkB,kBAAoB,GAAoB,OAAflB,KAAKmB,QACpCnB,KAAKmB,MAAQgF,OAAOsE,WAAW,WAC5BzK,KAAKkB,kBAAoB,EACzBlB,KAAK6D,QAAQgG,QAAQ,oBAAqB,IAC1C,MAGN7J,KAAKiB,GAAGsH,KAAKjE,KAAKC,WACfQ,IAAKA,IACLI,MAAOA,UAIU,gBAAZ,SACRA,MAAQb,KAAKC,UAAUY,QAG1BgpB,aAAatkB,QAAQ7J,KAAK6D,QAAQoqB,UAAUC,IAAMnpB,IAAKI,QAG1DyC,YAAa,SAASkK,KAAM/M,IAAKI,OAC9B,GAAI6H,MAAOhN,KAAK6D,OAUhB,OARyB,KAArBqJ,UAAUvG,QACXxB,MAAQJ,IACRA,IAAM+M,KACNA,KAAO,IACsB,IAArB5E,UAAUvG,SAClB5B,IAAM+M,KAAO9E,KAAKghB,IAAMjpB,KAGpB/E,KAAK6D,QAAQgG,QAAQ9E,IAAKI,OAAO,IAU3CrB,QAAS,SAASiB,IAAKmpB,IACpBnpB,IAAM/E,KAAK6D,QAAQoqB,UAAUC,IAAMnpB,GAEnC;GAAII,OAAQgpB,aAAarqB,QAAQiB,IACjC,KACG,MAAOT,MAAKyoB,MAAM5nB,OACnB,MAAOqoB,GACN,MAAOroB,SAUbF,YAAa,SAAS6M,KAAM/M,KACzB,GAAIiI,MAAOhN,KAAK6D,OAQhB,OANyB,KAArBqJ,UAAUvG,OACX5B,IAAM+M,KACuB,IAArB5E,UAAUvG,SAClB5B,IAAM+M,KAAO9E,KAAKghB,IAAMjpB,KAGpB/E,KAAK6D,QAAQC,QAAQiB,KAAK,IAUpCsC,WAAY,SAAStC,IAAKmpB,IAGnBluB,KAAKkB,mBAA6B,QAAR6D,KAAyB,iBAARA,KAC5C/E,KAAKiB,GAAGsH,KAAKjE,KAAKC,WACfQ,IAAK/E,KAAK6D,QAAQuqB,OAASrpB,IAC3BI,MAAO,MAIbgpB,aAAa9mB,WAAWrH,KAAK6D,QAAQoqB,UAAUC,IAAMnpB,MAQxD+S,eAAgB,SAAShG,KAAM/M,KAC5B,GAAIiI,MAAOhN,KAAK6D,OAES,KAArBqJ,UAAUvG,OACX5B,IAAM+M,KACuB,IAArB5E,UAAUvG,SAClB5B,IAAM+M,KAAO9E,KAAKghB,IAAMjpB,KAG3B/E,KAAK6D,QAAQwD,WAAWtC,KAAK,IAahCK,WAAY,SAASL,IAAKspB,SAAUlpB,MAAO+oB,IAExC,GAAIvqB,MAAO3D,KAAK6D,QAAQC,QAAQiB,IAAKmpB,OAEX,iBAAf,UAER/tB,EAAEiI,KAAKimB,SAAU,SAAStpB,IAAKuD,KACD,mBAAf3E,MAAKoB,MACd/E,KAAKyD,MAAM,YAAcsB,IAAM,qBAAwBspB,SAAW,qBAGrE1qB,KAAKoB,KAAOuD,OAGiB,mBAApB3E,MAAK0qB,WACdruB,KAAKyD,MAAM,YAAc4qB,SAAW,mCAGvC1qB,KAAK0qB,UAAYlpB,OAGpBnF,KAAK6D,QAAQgG,QAAQ9E,IAAKpB,KAAMuqB,KAWnCta,eAAgB,SAAS9B,KAAM/M,IAAKspB,SAAUlpB,OAC3C,GAAI6H,MAAOhN,KAAK6D,OAUhB,OARyB,KAArBqJ,UAAUvG,QAAsC,IAArBuG,UAAUvG,QAAoC,gBAAb0nB,UAC7DtpB,IAAM+M,KAAO9E,KAAKghB,IAAMjpB,KAExBI,MAAQkpB,SACRA,SAAWtpB,IACXA,IAAM+M,MAGF9R,KAAK6D,QAAQuB,WAAWL,IAAKspB,SAAUlpB,OAAO,IAUxDuF,IAAK,SAAS3F,IAAKmpB,IAEhBluB,KAAK6D,QAAQgG,QAAQ9E,IAAKupB,OAAOtuB,KAAK6D,QAAQC,QAAQiB,IAAKmpB,KAAO,EAAGA,KAWxEK,cAAe,SAASxpB,IAAKgK,KAAMmf,IAChC,GAAI1X,MAAOxW,KAAK6D,QAAQC,QAAQiB,IAAKmpB,GAEjC/tB,GAAEquB,QAAQhY,MACXA,KAAOrW,EAAEsuB,KAAKjY,KAAM,SAASgX,GAC1B,MAAOA,KAAMze,OAEU,gBAAX,aACRyH,MAAKzH,MAGf/O,KAAK6D,QAAQgG,QAAQ9E,IAAKyR,KAAM0X,KAGnC3S,kBAAmB,SAASzJ,KAAM/M,IAAKgK,MACpC,GAAI/B,MAAOhN,KAAK6D,OAShB,OAPyB,KAArBqJ,UAAUvG,QACXoI,KAAOhK,IACPA,IAAM+M,MACuB,IAArB5E,UAAUvG,SAClB5B,IAAM+M,KAAO9E,KAAKghB,IAAMjpB,KAGpB/E,KAAK6D,QAAQ0qB,cAAcxpB,IAAKgK,MAAM,IAahD1I,UAAW,SAASmnB,GAGjB,GAAIA,EAAEzoB,MAAQ/E,KAAK6D,QAAQkqB,OAAS/tB,KAAK6D,QAAQmqB,IAAM,OAASR,EAAEzoB,MAAQ/E,KAAK6D,QAAQkqB,OAAS/tB,KAAK6D,QAAQmqB,IAAM,eAAnH,CAIA,GAAIU,IAAK,GAAI1sB,QAAO,IAAMhC,KAAK6D,QAAQkqB,OAAS/tB,KAAK6D,QAAQmqB,IAAM,QAAUhuB,KAAK6D,QAAQmqB,IAAM,QAAUhuB,KAAK6D,QAAQmqB,IAAM,KAAOhuB,KAAK6D,QAAQmqB,IAAM,SAAU,KAC7JjpB,IAAMyoB,EAAEzoB,IAAI4G,QAAQ+iB,GAAI,KAI5B,IAAI1uB,KAAKkB,kBAAoB,GAAKlB,KAAKiB,GAAG0F,OAAS,EAAG,CAEnD,GAAI2B,KAAMklB,EAAEmB,QACZ,KACGrmB,IAAMhE,KAAKyoB,MAAMzkB,KAClB,MAAOjE,MAGT,GAAIgE,OAAQlI,EAAEme,QAAQha,KAAKC,WACxBQ,IAAKA,IACLI,MAAOmD,MACNtI,KAAKiB,GAET,IAAIoH,OAAS,EAUV,MAPIrI,MAAKkB,kBAAoB,IAC1BiF,OAAO4E,aAAa/K,KAAKmB,OACzBnB,KAAKkB,kBAAoB,EACzBlB,KAAK6D,QAAQgG,QAAQ,oBAAqB,QAG7C7J,MAAKiB,GAAGujB,OAAOnc,MAAO,GAM5B,GAAImlB,EAAEoB,WAAapB,EAAEmB,SAArB,CAIA,GAAIE,GAAGhS,EACHzb,IAAM2D,IAAI4G,QAAQ,GAAI3J,QAAO,KAAOhC,KAAK6D,QAAQmqB,IAAM,KAAOhuB,KAAK6D,QAAQmqB,IAAM,OAAQ,KAAM,KAGnG,IAAIhuB,KAAKK,QAAkB,UAAR0E,IAIhB,MAHA/E,MAAKyD,MAAM,uBAEXzD,MAAK6D,QAAQ6G,IAAI,QAKpB,MAAK1K,KAAKK,QAAmB,UAAR0E,KAA2B,eAARA,KAA0B/E,KAAKe,sBAWpE,MARAoF,QAAO4E,aAAa/K,KAAKO,IACzBP,KAAKO,GAAK4F,OAAOsE,WAAWzK,KAAKmH,aAAuB,UAARpC,IAAmB/E,KAAK4E,QAAQiG,QAAU7K,KAAK4E,QAAQqG,aAAejL,KAAKkL,OAAO,UAG7HlL,KAAKM,iBACPN,KAAKyJ,UAwCX,IAlCI1E,IAAIuE,MAAM,aACXtJ,KAAKya,OAAOC,OAGX3V,IAAIuE,MAAM,cACXtJ,KAAKkH,IAAI6Q,eAAeyV,EAAEmB,UAAU,GAGnC5pB,IAAIuE,MAAM,aAAekkB,EAAEmB,WAC5BE,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEiB,mBAAvBE,GAAE1D,kBAAoC0D,EAAE1D,iBAChDnrB,KAAKoK,aAAagO,WAAU,GAE5BpY,KAAKoK,aAAaiO,aAAY,IAIhCtT,IAAIuE,MAAM,aACPtJ,KAAKK,OACN0K,aAAa/K,KAAKS,gBAElBT,KAAKmN,YAIPpI,IAAIuE,MAAM,YACPtJ,KAAKK,OACN0K,aAAa/K,KAAKS,gBAElBT,KAAKwN,YAIPzI,IAAIuE,MAAM,GAAItH,QAAO,QAAUhC,KAAK6D,QAAQmqB,MAK7C,IAHA,GACIrqB,MAAMoN,GADN+d,MAAQxqB,KAAKyoB,MAAMS,EAAEmB,UAGlBG,MAAMnoB,OAAS,GACnBhD,KAAOmrB,MAAMtO,MACbzP,GAAK5Q,EAAE,IAAMwD,KAAKgR,KAEA,IAAd5D,GAAGpK,QACA3G,KAAKK,QAA6B,QAAnBsD,KAAKub,WACrBlf,KAAK8G,KAAK6Y,YAAYve,IAAKuC,KAAKD,IAAKC,KAAKgR,KAG7C3U,KAAKkH,IAAIf,OAAOyZ,aAAaxe,IAAKuC,OAC1BA,KAAKyc,UACbrP,GAAGP,SAAS,qBAhBrB,CAsBA,GAAIzL,IAAIuE,MAAM,GAAItH,QAAO,UAAYhC,KAAK6D,QAAQmqB,MAE/C,MAAKR,GAAEmB,SAKFnB,EAAEoB,UAKPC,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEbE,EAAE3iB,SACHlM,KAAKkH,IAAIf,OAAO4Y,MAAM3d,KAEtBpB,KAAKkH,IAAIf,OAAO0Y,MAAMzd,SAGzBpB,MAAKkH,IAAIf,OAAOkG,QAAQjL,IAAKytB,EAAEviB,WAZ5BtM,MAAKkH,IAAIf,OAAOsI,KAAKrN,SALrBpB,MAAKkH,IAAIf,OAAOqV,OAAOpa,IAsB7B,IAAI2D,IAAIuE,MAAM,GAAItH,QAAO,OAAShC,KAAK6D,QAAQmqB,MAAO,CAEnD,IAAKR,EAAEmB,SAQJ,MANA3uB,MAAKkH,IAAIgM,OAAOW,aAEZ7T,KAAKK,QACNL,KAAKkG,IAAIyN,QAAQvS,KAAK6qB,GAAGC,QAM/B2C,GAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEO,mBAAZE,GAAM,KAEf7uB,KAAKkG,IAAIimB,cAAc/qB,IAAKytB,EAAElrB,MAEtB3D,KAAKK,QAAUwuB,EAAE7a,MACzBhU,KAAKkH,IAAIgM,OAAOW,QAEhB7T,KAAKkG,IAAIiO,WAAW/S,IAAKytB,EAAE7a,IAAK6a,EAAE5a,QAIxC,IAAKjU,KAAKK,QAAU0E,IAAIuE,MAAM,GAAItH,QAAO,SAAWhC,KAAK6D,QAAQmqB,MAAO,CAErE,IAAKR,EAAEmB,SAEJ,WADA3uB,MAAKkH,IAAIW,OAAOyT,MAAMla,IAGzB,KAAKosB,EAAEoB,SAEJ,WADA5uB,MAAKkH,IAAIW,OAAOiE,IAAI1K,IAIvBytB,GAAIvqB,KAAKyoB,MAAMS,EAAEmB,UACjB9R,EAAIvY,KAAKyoB,MAAMS,EAAEoB,UAEjB5uB,KAAKkH,IAAIgJ,OAAO9O,MAEZyb,EAAEpM,SAAWoe,EAAEpe,QAAUoM,EAAEjM,MAAQie,EAAEje,MACtC5Q,KAAKkH,IAAIW,OAAOuT,QAAQha,KAiC9B,GA7BIpB,KAAKK,QAAU0E,IAAIuE,MAAM,GAAItH,QAAO,eAAiBhC,KAAK6D,QAAQmqB,OAASR,EAAEmB,WAC9EE,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEjB3uB,KAAK8G,KAAKoO,YAAY2Z,EAAEpnB,KACxBzH,KAAK6D,QAAQiU,eAAe/S,MAG3B/E,KAAKK,QAAU0E,IAAIuE,MAAM,GAAItH,QAAO,SAAWhC,KAAK6D,QAAQmqB,QAE7Da,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UACjB9R,EAAIvY,KAAKyoB,MAAMS,EAAEoB,UAEb/R,EAAEkS,cAAgBF,EAAEE,cACrB/uB,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAK,cAAe,IAEnC,IAAlBytB,EAAEE,aACH/uB,KAAKkG,IAAIqmB,QAAQnrB,KAEE,IAAlBytB,EAAEE,aACH/uB,KAAKkG,IAAIomB,UAAUlrB,MAIrByb,EAAE9N,OAAS8f,EAAE9f,MACd/O,KAAKkH,IAAIW,OAAOgU,QAAQza,IAAKytB,EAAE9f,OAKzB,QAARhK,IASD,YARKyoB,EAAEmB,UAKJ3uB,KAAK8G,KAAKF,SAMJ,eAAR7B,MACD8pB,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEb3uB,KAAKK,QAAUwuB,EAAEG,SAAW,GAC7BhvB,KAAK8G,KAAK0N,aAAaqa,EAAEpnB,IAAKonB,EAAEG,UAIlChvB,KAAKK,QAAU0E,IAAIuE,MAAM,GAAItH,QAAO,OAAShC,KAAK6D,QAAQmqB,QAC3Da,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEjB3uB,KAAK8G,KAAKmO,SAAS4Z,EAAE/lB,SAAU+lB,EAAE9Z,QAGxB,WAARhQ,KACD/E,KAAKkH,IAAIW,OAAOwS,SAGfra,KAAKK,QAAU0E,IAAIuE,MAAM,GAAItH,QAAO,SAAWhC,KAAK6D,QAAQmqB,OAAwB,OAAfR,EAAEmB,UAAqBnB,EAAEmB,SAASrlB,MAAM,cAE9GtJ,KAAK8G,KAAK+P,UAAUzV,IAAK,SAASuQ,QAC/B3R,KAAK6D,QAAQ+D,YAAY,QAASxG,KAC/Bsb,MAAO,UACP/Y,KAAMxD,EAAE,SAAS+O,OAAOyC,QAAQvN,UAEnC,WACApE,KAAK6D,QAAQ+D,YAAY,QAASxG,KAC/Bsb,MAAO,YAKX1c,KAAKK,SAAU0E,IAAIuE,MAAM,GAAItH,QAAO,SAAWhC,KAAK6D,QAAQmqB,OAAwB,OAAfR,EAAEmB,UAAsBnB,EAAEmB,SAASrlB,MAAM,eAChHulB,EAAIvqB,KAAKyoB,MAAMS,EAAEmB,UAEM,mBAAZE,GAAEnS,OACVvc,EAAEqG,UAAUoD,QAAQ,oBAAqBilB,GAG5C7uB,KAAK6D,QAAQiU,eAAe,QAAS1W,UAgB3Cse,YAAa,SAASte,IAAK8d,UAAWxb,IAAKyb,UAAWC,UAAWC,MAAOC,QACrE,GAAIN,MAAOhf,KAAK6D,QAAQoB,YAAY,OAAQ7D,SAExCuT,KAAM,GAAInS,OAAOgB,UAAY,MAE7Bwb,MAAKrY,OAAS3G,KAAK4E,QAAQE,IAAI,gBAChCka,KAAKwB,KAGR,IAAIf,OACDP,UAAWA,UACXxb,IAAKA,IACLiR,IAAKA,IAAIhJ,QAAQ,IAAK,KACtByU,UAAU,EACVjB,UAAWA,YAAa,EACxBC,UAAWA,YAAa,EACxBC,MAAOA,QAAS,GAAI7c,OAAOgB,UAC3B8b,OAAQA,OAMX,OAHAN,MAAKiQ,QAAQxP,MACbzf,KAAK6D,QAAQ+D,YAAY,OAAQxG,IAAK4d,MAE/BS,MAWV5H,UAAW,SAASzW,IAAKuC,MAEtB,MAAI3D,MAAK6D,QAAQoB,YAAY,QAAS7D,MACnCpB,KAAK6D,QAAQ+P,eAAe,QAASxS,IAAKuC,MAEnC,YAGV3D,KAAK6D,QAAQ+D,YAAY,QAASxG,IAAKjB,EAAE0E,QACtC4C,IAAK,GACLsH,KAAM,GACN0B,OAAQ,EACRG,IAAK,OACLF,SAAU,EACVqe,YAAa,GACbpe,OAAO,EACPsQ,YAAa,KACblL,OACAjE,KAAM,QACNnO,OAEI,aAOhB3D,KAAKkH,IAAIiI,SAAS+f,aAAe,6TAMjClvB,KAAKkH,IAAIiI,SAASggB,iBAAmB,mEAErCnvB,KAAKkH,IAAIiI,SAASigB,YAAc,2jEAoD7BpvB,KAAKqvB,QAEF3d,KAAM,KAGN4d,YAAa,KAGbC,aAAc,KAGdC,YAAa,KAGbC,aAAa,EAGbC,kBAAoB,iCAAkC,iCAAkC,uCAAwC,+BAGhIC,YAQAhrB,KAAM,WACH,GAAIqI,MAAOhN,KAAKqvB,MAShB,OANAriB,MAAK0E,KAAO1R,KAAK8G,KAAK4K,KAEF,YAAhBzR,IAAI2vB,UACL5iB,KAAK0E,KAAKme,OAAOC,kBAAkBC,UAAUC,yBAA0B,GAGrEhjB,KAAK0E,KAAKme,QAMf7iB,KAAK0E,KAAKme,OAAOI,UAAW,EAC5BjjB,KAAK0E,KAAKme,OAAOK,YAAa,EAC9BljB,KAAK0E,KAAKme,OAAOM,WAAanwB,KAAK6D,QAAQoB,YAAY,aACvD+H,KAAK0E,KAAKme,OAAOO,YAAa,EAC9BpjB,KAAK0E,KAAKme,OAAOQ,eAAiBpwB,IAAIowB,eAEtClwB,EAAEqG,UAAUC,GAAG,eAAgBtG,EAAEmwB,MAAMtjB,KAAKujB,UAAWvjB,OACvD7M,EAAEqG,UAAUC,GAAG,gBAAiBtG,EAAEmwB,MAAMtjB,KAAKuW,WAAYvW,OAEzD7M,EAAEqG,UAAUC,GAAG,oBAAqBtG,EAAEmwB,MAAMtjB,KAAKwjB,aAAcxjB,OAC/D7M,EAAEqG,UAAUC,GAAG,sBAAuBtG,EAAEmwB,MAAMtjB,KAAKyjB,eAAgBzjB,OACnE7M,EAAEqG,UAAUC,GAAG,sBAAuBtG,EAAEmwB,MAAMtjB,KAAK0jB,eAAgB1jB,OACnE7M,EAAEqG,UAAUC,GAAG,wBAAyBtG,EAAEmwB,MAAMtjB,KAAK2jB,iBAAkB3jB,OACvE7M,EAAEqG,UAAUC,GAAG,iBAAkBtG,EAAEmwB,MAAMtjB,KAAK4jB,cAAe5jB,OAE7D7M,EAAEqG,UAAUC,GAAG,2BAA4BtG,EAAEmwB,MAAMtjB,KAAK6jB,oBAAqB7jB,OAC7E7M,EAAEqG,UAAUC,GAAG,6BAA8BtG,EAAEmwB,MAAMtjB,KAAK8jB,sBAAuB9jB,OACjF7M,EAAEqG,UAAUC,GAAG,kCAAmCtG,EAAEmwB,MAAMtjB,KAAK+jB,4BAA6B/jB,OAC5F7M,EAAEqG,UAAUC,GAAG,0BAA2BtG,EAAEmwB,MAAMtjB,KAAKgkB,iBAAkBhkB,OAEzE7M,EAAEqG,UAAUC,GAAG,eAAgB,SAAS8I,GAAI0hB,IAAKvsB,OAC9C1E,KAAK0E,MAAM,WAAYA,SAGtBsI,KAAK0E,KAAKmS,OACX7W,KAAK0E,KAAKmS,MAAMqN,WAAW,+BAG1BlkB,KAAK0E,KAAKyf,MACXhxB,EAAEqG,UAAUC,GAAG,eAAgBtG,EAAEmwB,MAAMtjB,KAAKokB,OAAQpkB,WAGvDA,MAAKqkB,2BArCFrxB,MAAK0E,MAAM,4BA6CjB2sB,oBAAqB,WAElB,IAAKrxB,KAAK4E,QAAQ0sB,oBAEf,WADAtxB,MAAKyD,MAAM,wCAId,IAAI8tB,MAAOvxB,KAAK6D,QAAQoB,YAAY,gBAAkB,IAAK,GAAKzC,OAAQgB,SACxE,OAAI+tB,KAAM,MAGPprB,QAAOsE,WAAWzK,KAAKqvB,OAAOgC,oBAAqBE,IAAM,SAI5DpxB,GAAEqxB,KAAKxxB,KAAK4E,QAAQ0sB,qBACjBG,OAAO,EACPC,QAAS,SAAS/tB,MACf,GAAIguB,YACDC,aACG/R,IAAK,QAAUlc,KAAKkc,IACpBgS,WAAYluB,KAAKkuB,WACjB/oB,SAAUnF,KAAKmF,WAIrB9I,MAAKqvB,OAAO3d,KAAKme,OAAOM,WAAawB,UACrC3xB,KAAK6D,QAAQ+D,YAAY,YAAa+pB,WACtC3xB,KAAK6D,QAAQ+D,YAAY,eAAe,GAAKpF,OAAQgB,UAAY,IAAOG,KAAK4tB,MAEhFO,SAAU,UAWhBC,cAAe,SAAStqB,KACrB,GAAIuF,MAAOhN,KAAKqvB,OACZjuB,IAAMpB,KAAKiH,SAASQ,KACpBsO,IAAM/V,KAAK6D,QAAQoB,YAAY,MAAO7D,SAEtC4wB,YAOJ,OANA7xB,GAAEiI,KAAK2N,IAAK,SAAS4O,GACd3X,KAAK0E,KAAKyf,KAAKc,gBAAgB7wB,IAAM,IAAMujB,EAAG3X,KAAK0iB,mBACpDsC,UAAUzpB,KAAKoc,KAIdqN,WAaVE,gBAAiB,SAASjU,MAAO7c,IAAKuC,KAAMoN,IACzC,GAAI/D,MAAOhN,KAAKqvB,MAEhB,KAAKriB,KAAK0E,KAIP,WAHAvR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrCgG,KAAKklB,gBAAgB,KAAM9wB,IAAKuC,KAAMoN,KAK5C,IAAIohB,WAAYhyB,EAAE,gDAAkDA,EAAEgJ,EAAE,oBAAsB,WAE9FgpB,WAAU1lB,MAAM,WAEb,MADAO,MAAKolB,UAAUzuB,KAAK8D,MACb,IAGVsJ,GAAGvE,KAAK,2BAA2B0C,OAAOijB,WAE1CphB,GAAGtK,GAAG,aAAc,WACjBuG,KAAKqlB,WAAWjxB,QAYtB+kB,WAAY,SAASlI,MAAOzP,KACzB,GAAIxB,MAAOhN,KAAKqvB,MAEhB,KAAI7gB,IAAIgK,SAAS,kBAAjB,CAMA,GAFAxY,KAAKyD,MAAM,sBAENuJ,KAAK0E,KAIP,WAHAvR,GAAEqG,UAAUQ,IAAI,uBAAwB,WACrCgG,KAAKmZ,WAAW,KAAM3X,MAK5B,IAAIuF,KAAM5T,EAAE,SAASqQ,SAAS,aAC9BhC,KAAIhC,KAAK,wBAAwB8Z,MAAMvS,KAEvC/G,KAAKqlB,WAAWryB,KAAKiH,SAASuH,IAAI7K,KAAK,WAS1C0uB,WAAY,SAASjxB,KAClBpB,KAAKyD,MAAM,cAAerC,IAE1B,IAAI4L,MAAOhN,KAAKqvB,MAEhB,IAAIjuB,MAAQpB,KAAKiH,SAAS+F,KAAK0E,KAAKjK,KAApC,CAIA,GAAI+G,KAAMxO,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAC1BqG,IAAM+G,IAAI7K,KAAK,OACf1C,GAAKjB,KAAK6D,QAAQoB,YAAY,QAAS7D,IAE3C,IAAmB,gBAARqG,KAAkB,CAC1B,IAAIxG,IAAwB,gBAAXA,IAAGwG,IAIjB,WADAzH,MAAKyD,MAAM,kEAAoErC,IAF/EqG,KAAMxG,GAAGwG,IAOf,GAAIsJ,IAAKvC,IAAIhC,KAAK,eAAeV,IAAI9L,KAAKkH,IAAIW,OAAO/D,QAAQ1C,KAAKoL,KAAK,gBAEnE8lB,WAAatlB,KAAK+kB,cAActqB,KAChC8qB,UAAY9mB,QAAQ0b,mBAAmB1f,IAEzB,QAAd8qB,YACDpyB,EAAEiI,KAAKpI,KAAK6D,QAAQoB,YAAY,QAAS7D,KAAK2U,QAAW,SAAS1N,MAAOC,KACtE,MAAIgqB,YAAWxZ,QAAQxQ,KAAO,IAC3BiqB,UAAYjqB,KACL,GAFV,SAMHb,IAAMA,IAAM,IAAM8qB,WAGrBxhB,GAAGhK,IAAI,SAEHurB,WAAWxZ,QAAQyZ,WAAa,IACjCxhB,GAAGtE,MAAM,WACNO,KAAKolB,UAAU3qB,OAGlBsJ,GAAGR,YAAY,iBAEfQ,GAAGd,KAAK,QAAS9P,EAAEgJ,EAAE,uBAErB4H,GAAGP,SAAS,iBAEZO,GAAGd,KAAK,QAAS9P,EAAEgJ,EAAE,+BAY3BonB,UAAW,SAAS/C,EAAGnZ,MACpB,GAAIrH,MAAOhN,KAAKqvB,OACZjuB,IAAMpB,KAAKiH,SAASoN,KAExBrU,MAAKyD,MAAM,mBAAoB4Q,MAE3BrH,KAAK2iB,SAASvuB,OAASiT,OACxBrH,KAAKqlB,WAAWjxB,KAChB4L,KAAK2iB,SAASvuB,KAAOiT,OAY3BkP,WAAY,SAAShU,GAAI9H,IAAKgJ,OAAQwW,UACnC,GAAIja,MAAOhN,KAAKqvB,MAEsD,KAAlElvB,EAAE8mB,UAAUza,KAAK,YAAcf,QAAQvJ,GAAGswB,KAAO,MAAM7rB,SACxD3G,KAAKyD,MAAM,oBAAqBgE,KAEhCuF,KAAKqlB,WAAWryB,KAAKiH,SAASQ,QAWpCgrB,UAAW,SAASC,IAAKzuB,GACtB,GAAIwM,QAAStQ,EAAE,6BACXic,SAAyB,mBAANnY,IAA2B,OAANA,EAAc,IAAOA,CAuBjE,IArBAjE,KAAKyD,MAAM,WAAYivB,KAEnBjiB,OAAOrM,SAERsuB,IAAMjiB,OAAOrM,OAAS,SAAWsuB,KAGpCjiB,OAAOrM,KAAKsuB,KAEZjiB,OAAOa,KACJqhB,cAAe,IAAOliB,OAAOsB,QAAU,EAAK,KAC5CyI,QAAS,EACToY,QAAS,UAGZniB,OAAOoiB,OAAOlW,SACXnC,QAAS,IAGZzP,aAAa0F,OAAO9M,KAAK,YAER,IAAbyY,SAAJ,CAIA,GAAI7b,IAAKkK,WAAW,WACjBgG,OAAOoiB,OAAOlW,SACXnC,QAAS,GACT,WACA/J,OAAOrM,KAAK,OAEfgY,SAEH3L,QAAO9M,KAAK,UAAWpD,MAW1B6wB,OAAQ,SAASnT,MAAOxW,KACrB,GAAIuF,MAAOhN,KAAKqvB,MAEZrvB,MAAKkH,IAAIW,OAAOkE,OACjBiB,KAAKqlB,WAAWryB,KAAKiH,SAASQ,MAE9BtH,EAAEqG,UAAUC,GAAG,sBAAuB,WACnCuG,KAAKqlB,WAAWryB,KAAKiH,SAASQ,SAavC+oB,aAAc,SAASvS,MAAO6U,QAC3B9yB,KAAKyD,MAAM,cAEX,IAAIuJ,MAAOhN,KAAKqvB,MAEhBriB,MAAKsiB,YAAcwD,OACnB9lB,KAAK0E,KAAKme,OAAOP,YAAcwD,OAE/B9yB,KAAKkH,IAAI6rB,gBAAgB/lB,KAAKwiB,YAE9B,IAAI3hB,EACJ,KAAKA,EAAI,EAAGA,EAAIilB,OAAOE,iBAAiBrsB,OAAQkH,IAC7Cb,KAAKylB,UAAWK,OAAOE,iBAAiBrsB,OAAS,EAAK,0BAA4B,0BAElF3G,KAAKyD,MAAM,uBAAyBqvB,OAAOE,iBAAiBnlB,GAAGolB,MAAQ,IAE1E,KAAKplB,EAAI,EAAGA,EAAIilB,OAAOI,iBAAiBvsB,OAAQkH,IAC7Cb,KAAKylB,UAAWK,OAAOI,iBAAiBvsB,OAAS,EAAK,0BAA4B,0BAElF3G,KAAKyD,MAAM,uBAAyBqvB,OAAOI,iBAAiBrlB,GAAGolB,MAAQ,KACvE9yB,EAAE,iCAAiCiM,MAGtCjM,GAAEqG,UAAUQ,IAAI,sBAAuB7G,EAAEmwB,MAAMtjB,KAAKmmB,OAAQnmB,OAC5D7M,EAAEqG,UAAUoD,QAAQ,2BASvB6mB,eAAgB,SAASlhB,GAAIlL,KAC1BwC,KAAK4rB,UAAU,iBAEfzyB,KAAKkH,IAAIf,OAAO2N,YAAY9T,KAAKiH,SAASjH,KAAKqvB,OAAOG,aAAc,MAAOrvB,EAAEgJ,EAAE,iBAAmB9E,IAAI0K,MACtG/O,KAAKyD,MAAM,kBAAoBY,IAAI0K,OAWtC2hB,eAAgB,SAASzS,MAAOgT,KAC7BjxB,KAAKyD,MAAM,gBAAkBwtB,IAE7B,IAAIjkB,MAAOnG,KACPusB,KAAOvsB,KAAK6K,KAAKme,OAAOwD,SAASpC,KACjC7vB,IAAMpB,KAAKiH,SAASmsB,KAAKE,QA4B7B,IA1BAtzB,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAOjB,EAAEgJ,EAAE,kBAG5CnJ,KAAKoK,aAAagf,OAAOjpB,EAAEgJ,EAAE,iBAAkBhJ,EAAEgJ,EAAE,QAAU,IAAM/H,KAGnEgyB,KAAKG,cAELvzB,KAAKqvB,OAAOG,YAAc4D,KAAKE,QAE/BtzB,KAAK4M,cACF4mB,oBAAqB,SAASvV,MAAO6U,QAClC9lB,KAAKylB,UAAU,eAEfW,KAAK9D,YAAcwD,OACnBM,KAAKK,eAAeC,UAAUZ,QAE9BM,KAAKO,aACLP,KAAKQ,UAERC,sBAAuB,WACpBT,KAAKU,cAAc,WACnBV,KAAKW,eAIP/zB,KAAKqvB,OAAOI,YAEb,WADAziB,MAAKgnB,cAIR,IAAI9gB,QAASlT,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,eAAgB1D,MACrEkT,SAAS,GAGZpB,QAAO1G,KAAK,gBAAgBC,MAAM,WAC/BtM,EAAEqG,UAAUoD,QAAQ,oBAEpBoD,KAAKgnB,iBAGR9gB,OAAO1G,KAAK,gBAAgBC,MAAM,WAC/BzM,KAAKkH,IAAIgM,OAAOW,QAChB1T,EAAEqG,UAAUoD,QAAQ,oBAEpBwpB,KAAKU,cAAc,WACnBV,KAAKW,eAcXpD,iBAAkB,SAAS1S,MAAOgT,IAAKvI,OAAQpc,MAC5CzF,KAAK4rB,UAAU,mBAAqBxB,KAAOvI,OAAU,KAAOA,OAAS,IAAMpc,KAAQ,IAEnF,IAAIlL,KAAMpB,KAAKiH,SAASjH,KAAKqvB,OAAOG,YAEhC3oB,MAAKyoB,aACNzoB,KAAKyoB,YAAYuD,OAGhB1yB,EAAE,wBAAwBwG,SAC3BxG,EAAE,qBAAqB,GAAG+Q,IAAM,GAChC/Q,EAAE,oBAAoB,GAAG+Q,IAAM,IAGlCrK,KAAK6K,KAAKme,OAAOP,YAAc,KAC/BzoB,KAAKyoB,YAAc,KACnBzoB,KAAK0oB,aAAe,IAEpB,IAAI/gB,KAAMrO,EAAE,wCACZA,GAAE,yBAAyB+D,QAAQsK,IAAI6M,UACvC7M,IAAIhC,KAAK,kBAAkBqR,UAAU,UAErC1d,EAAEqG,UAAUO,IAAI,uBAChB5G,EAAEqG,UAAUO,IAAI,gBAChB/G,KAAKkH,IAAIgM,OAAOW,QAEhB7T,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,MAAQjB,EAAEgJ,EAAE,oBAAsBuf,OAAU,KAAOvoB,EAAEgJ,EAAEuf,QAAW,IAAM,MAS5GkI,cAAe,WACZ/pB,KAAK4rB,UAAU,aAAc,IAYhC5B,oBAAqB,SAAS5S,MAAOta,KAAMstB,KACxCpqB,KAAK4rB,UAAU,6BAA+BxB,IAAM,UAEpD,IAAI6B,QAASnvB,KAAKmvB,MAClBjsB,MAAK0oB,aAAeuD,MAEpB,IAAIM,MAAOvsB,KAAK6K,KAAKme,OAAOwD,SAASpC,KAEjCgD,cAAgBnB,OAAOI,iBAAiBvsB,OAAS,EACjDutB,cAAgBpB,OAAOE,iBAAiBrsB,OAAS,CAErDysB,MAAKe,eACFC,MAAOH,cACP3K,MAAO4K,eAGVrtB,KAAK4rB,UAAUwB,cAAgB,2BAA6B,0BAC5DptB,KAAK4rB,UAAUyB,cAAgB,2BAA6B,0BAExD/zB,EAAE,qBAAqBwG,SACxB1G,IAAIo0B,kBAAkBl0B,EAAE,kCAAmC2yB,QAE3D3yB,EAAE,uBAAyB8zB,cAAgB,cAAgB,kBAAkBzjB,SAAS,0BAa5FsgB,sBAAuB,SAAS7S,MAAOta,KAAMstB,KAC1CpqB,KAAK4rB,UAAU,6BAA+BxB,IAAM,cAYvDF,4BAA6B,SAAS9S,MAAOgT,IAAKmC,MAC/C,GAAIkB,UAAWlB,KAAKK,eAAec,eAC/BC,OAASpB,KAAKK,eAAegB,kBAMjC,IAJAz0B,KAAKyD,MAAM,oBAAsBwtB,IAAKmC,KAAKK,eAAeiB,mBAC1D10B,KAAKyD,MAAM,oBAAsBwtB,IAAKuD,QACtCx0B,KAAKyD,MAAM,iBAAmBwtB,IAAKqD,UAElB,WAAbA,UAAqC,cAAXE,QAAqC,cAAXA,OAiBlC,WAAXA,SACRx0B,KAAKkH,IAAIf,OAAO2N,YAAY9T,KAAKiH,SAASmsB,KAAKE,SAAU,MAAOnzB,EAAEgJ,EAAE,2BAEpEhJ,EAAEqG,UAAUO,IAAI,uBAEhBqsB,KAAKU,cAAc,oBACnBV,KAAKW,YAEL5zB,EAAEqG,UAAUoD,QAAQ,8BAzB0D,CAE9EzJ,EAAE,sCAAsCiM,OACxCjM,EAAE,2BAA2BgM,MAE7B,IAAIwoB,UAAWvB,KAAKK,eAAemB,iBAAiBC,IAChDC,UAAY1B,KAAKK,eAAesB,kBAAkBF,GAEtDzB,MAAK4B,SAAWC,QAAQC,kBAAkBD,QAAQE,UAAUR,SAAU,mBAAmB1T,YACzFmS,KAAKgC,UAAYH,QAAQC,kBAAkBD,QAAQE,UAAUL,UAAW,mBAAmB7T,WAE3F,IAAI3U,MAAO,KACXA,OAAQ,MAAQnM,EAAEgJ,EAAE,qBAAuB,SAAWiqB,KAAK4B,SAAW,SACtE1oB,MAAQ,MAAQnM,EAAEgJ,EAAE,sBAAwB,SAAWiqB,KAAKgC,UAC5D9oB,MAAQ,OAERnM,EAAE,8BAA8BiE,KAAKkI,QAmB3C0kB,iBAAkB,aAWlBoB,UAAW,SAAS3qB,IAAK4tB,IACtB,GAAIroB,MAAOnG,IAEX,OAAwC,QAApC4E,QAAQ0b,mBAAmB1f,SAC5BzH,MAAKyD,MAAM,uBAIduJ,KAAKwiB,YAAc/nB,IAEnBzH,KAAK4M,cACF0oB,yBAA0B,WACvBtoB,KAAKylB,UAAU,iBAEfzyB,KAAKkH,IAAIf,OAAO2N,YAAY9T,KAAKiH,SAASQ,KAAM,MAAOtH,EAAEgJ,EAAE,iBAE3DhJ,EAAEqG,UAAUQ,IAAI,eAAgB,SAASwmB,EAAGyD,IAAKvsB,OACzB,UAAjBA,MAAMob,SAIV3f,EAAEqG,UAAUO,IAAI,uBAChB0D,WAAW,WACRzK,KAAKkH,IAAIiO,UAAU,4EACnB,QAGNnI,KAAK0E,KAAKme,OAAO0F,SAAS9tB,IAAKuF,KAAK0E,KAAKjK,IAAImE,gBAEhDioB,sBAAuB,WACpB7zB,KAAKkH,IAAIgM,OAAOW,eAItB7G,MAAKgnB,aAAaqB,MAQrBlC,OAAQ,SAASzK,OAAQpc,MACtBnM,EAAEqG,UAAUO,IAAI,uBAEhB/G,KAAKqvB,OAAO3d,KAAKme,OAAOkE,UAAU,KAAMrL,OAAQpc,MAChDnM,EAAEqG,UAAUoD,QAAQ,0BAQvBoqB,aAAc,SAASqB,IACpB,MAAIxuB,MAAKyoB,gBACNnvB,GAAEqG,UAAUoD,QAAQ,qBAAuB/C,KAAKyoB,eAInD+F,GAAKA,KAAQ,QAAS,SAEtBr1B,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,qBACxCwP,SAAS,IAEZzN,KAAK4rB,UAAU,qDAEiB,mBAArB+C,mBAA2E,mBAAhCA,kBAAiBC,WACpED,iBAAiBC,WAAW,SAASC,YAClC,GAAIC,kBAAmBD,WAAWE,IAAI,SAAS7kB,IAE5C,MAAOA,IAAG8kB,MAGbR,IAAKA,GAAGS,OAAO,SAAS/kB,IACrB,MAAwC,KAAjC4kB,iBAAiB7c,QAAQ/H,MAGnCglB,4BAA4BV,MAG/BU,4BAA4BV,OAUlCW,SAAU,SAAS5B,OACXA,OACFp0B,KAAKyD,MAAM,yBAGdtD,EAAE,uBAAuBwO,QAEzB,IAAIsnB,QAAS91B,EAAE,aAAamR,IAAI,UAAW,QAAQwD,SAAS,QAAQ7E,MACjE8B,MAAOqiB,MAAMriB,QACb8D,OAAQue,MAAMve,WACd/Q,IAAI,GACHoxB,IAAMD,OAAOE,WAAW,KAE5BD,KAAIE,UAAUhC,MAAM,GAAI,EAAG,EAC3B,IAAIviB,KAAM1R,EAAE,UACR0f,IAAM,IAEV,KACGA,IAAMoW,OAAOI,UAAU,cACxB,MAAOhyB,KAEN,WADArE,MAAKyE,KAAK,QAASJ,KAItBwN,IAAI,GAAGX,IAAM2O,GACb,IAAIjD,MAAOzc,EAAE,QAAQ8P,MAClBqmB,OAAQ,SACRzd,KAAMgH,KAETjD,MAAK1N,OAAO2C,KACZ1R,EAAE,qBAAqB+O,OAAO0N,MAE9BqZ,OAAOtnB,WASb3O,KAAKkH,IAAI6rB,gBAAkB,SAAStrB,KACjC,GAAIuF,MAAOhN,KAAKqvB,MAEhBlvB,GAAEqG,UAAUQ,IAAI,uBAAwB,WAGrC7G,EAAE,iCAAiC,GAAGo2B,OAAQ,EAC9Cp2B,EAAE,iCAAiC,GAAGq2B,OAAS,CAE/C,IAAIC,IAAKt2B,EAAE,kCACPu2B,GAAKv2B,EAAE,gCAEXu2B,IAAGC,WACAC,YAAa,WAGhB32B,IAAIo0B,kBAAkBqC,GAAI1pB,KAAKsiB,YAE/B,IAAIuH,UAAW12B,EAAE,gBAAgB4R,QAC7B+kB,SAAWL,GAAG1kB,OAGlB,IAAI+kB,SAAWD,SAAU,CACtB,GAAIE,OAAQF,SAAWC,SACnBE,MAAQP,GAAG5gB,SAAWkhB,MACtBE,MAAQJ,SACRK,GAAK/2B,EAAE,oCAEXs2B,IAAG5gB,OAAOmhB,OACVP,GAAG1kB,MAAMklB,OAETC,GAAGrhB,OAAOmhB,OACVE,GAAGnlB,MAAMklB,OAETP,GAAG7gB,OAAO6gB,GAAG7gB,SAAWkhB,OACxBL,GAAG3kB,MAAM2kB,GAAG3kB,QAAUglB,OAGrB/pB,KAAKuiB,eACNtvB,IAAIo0B,kBAAkBoC,GAAIzpB,KAAKuiB,cAE/BpvB,EAAE,uBAAyB6M,KAAKuiB,aAAa2D,iBAAiBvsB,OAAS,EAAI,cAAgB,kBAAkB6J,SAAS,wBAGzH,IAAI2mB,aAAc,SAASC,KAAM3oB,MAC9BtO,EAAE,kCAAkCk3B,IAAID,MAAM5kB,SAE9C,IAAIsK,MACDrK,SAAUzS,KAAKkH,IAAIgM,OAAO9D,OAGzBX,MACD2oB,KAAK1jB,UAAUoJ,KAEfsa,KAAKzkB,YAAYmK,MAInBtO,IAAMxO,KAAKkH,IAAIf,OAAOsI,KAAKzO,KAAKiH,SAASQ,KAE7C+G,KAAIhC,KAAK,kBAAkBqR,UAAU,WACrCrP,IAAIhC,KAAK,kBAAkB8N,YACxBzE,OAAQ,MAEXrH,IAAIhC,KAAK,mBAAmB8E,IAAI,MAAO,SAEvCnR,EAAE,kCAAkC+O,OAAOV,IAAI6M,UAE/Clb,EAAE,6BAA6BsM,MAAM,WAClCzM,KAAKqvB,OAAO8D,WAGfhzB,EAAE,+BAA+BsM,MAAM,WACpCzM,KAAKqvB,OAAO2G,SAASS,IACrBU,YAAYh3B,EAAE,mCAAmC,KAGpDA,EAAE,gCAAgCsM,MAAM,WACrC0qB,YAAYh3B,EAAE,qCAGjBA,EAAE,+BAA+BsM,MAAM,WACpC,GAAI6qB,UAAWn3B,EAAE,8BAEbm3B,UAAS5kB,GAAG,YACb4kB,SAASlrB,OACTjM,EAAE,6BAA6B4R,MAAM,OACrC/R,KAAKkH,IAAIgM,OAAO9D,QACb2C,MAAO,YAGVulB,SAASnrB,OACThM,EAAE,6BAA6B4R,MAAM,OACrC/R,KAAKkH,IAAIgM,OAAO9D,QACb2C,MAAO,aAKhB5R,EAAE,2BAA2BsM,MAAM,WAChC0qB,YAAYh3B,EAAE,iCAGjBA,EAAE,iCAAiCsM,MAAM,WAElCtM,EAAEo3B,QAAQC,aAEXr3B,EAAEqG,UAAUQ,IAAI,sBAAuB,WACpC0vB,GAAGrlB,WAAW,WAGjBlR,EAAE,qCAAqCq3B,gBAI7Cr3B,EAAE,6BAA6BqT,OAAO,WACnCijB,GAAG,GAAGD,OAASr2B,EAAE0G,MAAMyB,QAG1BnI,EAAE,6BAA6B4a,SAAS,WACrC5a,EAAE0G,MAAMyB,IAAI,QAIlBtI,KAAKkH,IAAIgM,OAAOzE,KAAKzO,KAAKkH,IAAIiI,SAASrK,IAAI,gBACxCwP,SAAS,KAIfnU,EAAE0E,OAAO7E,KAAKqB,OACXo2B,cAAe,GACfC,YAAa,KAGhBv3B,EAAEqG,UAAUyT,MAAM,WACfha,IAAM03B,WAEM,OAAR13B,MACDC,kBAAoBD,IAAIwzB,eAExBtzB,EAAEqG,UAAUC,GAAG,kBAAmBzG,KAAKqvB,OAAO6C,iBAC9C/xB,EAAEqG,UAAUC,GAAG,mBAAoBzG,KAAKqvB,OAAOlJ,YAC/ChmB,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAKqvB,OAAO1qB,SAUrD3E,KAAK8G,MACF4K,KAAM,KAyBN7I,MAAO,WAEJ,IAAI7I,KAAK8G,KAAK4K,OAAQ1R,KAAK8G,KAAK4K,KAAKkmB,cAArC,CAIA,GAAInwB,KAAM,KAAMsB,SAAW,KAAMkoB,IAAM,KAAM4G,IAAM,IAEnD,QAAQ3qB,UAAUvG,QACf,IAAK,GACFc,IAAMyF,UAAU,GAChBnE,SAAWmE,UAAU,EACrB,MACH,KAAK,GACFzF,IAAMyF,UAAU,GAChB+jB,IAAM/jB,UAAU,GAChB2qB,IAAM3qB,UAAU,EAChB,MACH,SACG+jB,IAAMjxB,KAAK6D,QAAQC,QAAQ,OAC3B+zB,IAAM73B,KAAK6D,QAAQC,QAAQ,OAEf,OAARmtB,KAAwB,OAAR4G,IACjBpwB,IAAMzH,KAAK6D,QAAQC,QAAQ,QAE3BmtB,IAAM,KACN4G,IAAM,KACNpwB,IAAMzH,KAAK4E,QAAQkC,KAAKW,KAIjC,GAAIoY,KAAM7f,KAAK4E,QAAQE,IAAI,QAAQ+a,GAE7B7f,MAAK8G,KAAK4K,MAAQ1R,KAAK8G,KAAK4K,KAAKomB,YAErC33B,EAAEqG,UAAUC,GAAG,iBAAkBzG,KAAK8G,KAAKgxB,WAC3C33B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAKixB,UAC1C53B,EAAEqG,UAAUC,GAAG,oBAAqBzG,KAAK8G,KAAKkxB,cAC9C73B,EAAEqG,UAAUC,GAAG,YAAazG,KAAK8G,KAAKmxB,aACtC93B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAKoxB,YAC1C/3B,EAAEqG,UAAUC,GAAG,gBAAiBzG,KAAK8G,KAAKkM,YAE1CvH,QAAQ0sB,aAAa,WAAY,sBAInCn4B,KAAK8G,KAAK4K,KAAO,GAAIjG,SAAQ2sB,WAAWvY,IAGxC,IAAIwY,oBAAqBr4B,KAAK8G,KAAK4K,KAAK4mB,WACxCt4B,MAAK8G,KAAK4K,KAAK4mB,YAAc,SAASC,QACnC,GAAI5jB,KAAM0jB,mBAAmBrwB,KAAKhI,KAAK8G,KAAK4K,KAAM6mB,OAGlD,OAFAv4B,MAAK6D,QAAQgG,QAAQ,YAAa7J,KAAK8G,KAAK4K,KAAK8mB,WAE1C7jB,KAGN3U,KAAK6D,QAAQC,QAAQ,YAAa,IACnC9D,KAAK8G,KAAK4K,KAAK+mB,SAAW,SAAS90B,MAChCI,QAAQC,IAAI,IAAKL,OAEpB3D,KAAK8G,KAAK4K,KAAKgnB,UAAY,SAAS/0B,MACjCI,QAAQC,IAAI,IAAKL,OAIvB,IAAIg1B,UAAW,SAASloB,OAAQ4T,WAI7B,OAFArkB,KAAKyD,MAAMm1B,OAAOC,oBAAoBptB,QAAQqtB,QAAQroB,QAAU,KAAO4T,WAE/D5T,QACL,IAAKhF,SAAQqtB,OAAOC,WACjB54B,EAAEqG,UAAUoD,QAAQ,kBACpB,MACH,KAAK6B,SAAQqtB,OAAOE,UACjBh5B,KAAKoB,IAAMpB,KAAKiH,SAASjH,KAAK8G,KAAK4K,KAAKjK,IAAImE,eAC5CzL,EAAEqG,UAAUoD,QAAQ,iBACpB,MACH,KAAK6B,SAAQqtB,OAAOG,SACjB94B,EAAEqG,UAAUoD,QAAQ,gBACpB,MACH,KAAK6B,SAAQqtB,OAAOI,aACjB/4B,EAAEqG,UAAUoD,QAAQ,oBACpB,MACH,KAAK6B,SAAQqtB,OAAOK,SACjBh5B,EAAEqG,UAAUoD,QAAQ,gBACpB,MACH,KAAK6B,SAAQqtB,OAAOM,SACjBj5B,EAAEqG,UAAUoD,QAAQ,kBAKzB5J,MAAK8G,KAAK4K,KAAKyf,OAChBnxB,KAAK8G,KAAK4K,KAAKyf,KAAKkI,KAAO,oBAG1Br5B,KAAKY,SAAWqwB,KAAO4G,KACxB73B,KAAKyD,MAAM,iBACXzD,KAAKyD,MAAM,QAAUwtB,KACrBjxB,KAAK8G,KAAK4K,KAAK4nB,OAAO7xB,IAAKwpB,IAAK4G,IAAKc,YAErC34B,KAAKyD,MAAM,kBAEPzD,KAAK8G,KAAK4K,KAAKyf,MAGhBnxB,KAAK8G,KAAK4K,KAAK6nB,eAAe,SAAS5nB,QACpC,GAAI0C,MAAOrU,KAAK8G,KAAK4K,KAAKrI,OAAQ4S,EAAItK,OAAO6nB,cAAc,KAAMC,IAAMxd,EAAEyd,aAAa,OAAQL,KAAOpd,EAAEyd,aAAa,QAEhHC,cAAgBr1B,KAAKyoB,MAAMoB,aAAarqB,QAAQ,kCAEpD9D,MAAK8G,KAAK4K,KAAKyf,KAAKyI,aAAavlB,MAAQolB,IACzCE,cAActlB,MAAQglB,KAEtBlL,aAAatkB,QAAQ,4BAA6BvF,KAAKC,UAAUvE,KAAK8G,KAAK4K,KAAKyf,KAAKyI,eACrFzL,aAAatkB,QAAQ,6BAA8BvF,KAAKC,UAAUo1B,iBAClEluB,QAAQvJ,GAAGswB,MAGjBxyB,KAAK8G,KAAK4K,KAAKmoB,QAAQpyB,KAAOzH,KAAK4E,QAAQkC,KAAKW,IAAKsB,UAAY/I,KAAK4E,QAAQkC,KAAKiC,SAAU4vB,aAUnG/xB,OAAQ,SAAS6L,UAUd,GAPAzS,KAAK6D,QAAQwD,WAAW,OAGxBrH,KAAK6D,QAAQiU,eAAe,aAC5B9X,KAAK6D,QAAQiU,eAAe,cAC5B9X,KAAK6D,QAAQwD,WAAW,cAEnBrH,KAAKK,OAGP,MAFAF,GAAE,gBAAgBwO,SAClBxO,EAAE,oBAAoBwO,UACf,CAGV,IAAuB,OAAnB3O,KAAK8G,KAAK4K,KACX,OAAO,CAIVvR,GAAE,QAAQsM,QAEVzM,KAAKe,qBAA4C,iBAAb0R,UAAyBA,UAAW,EAGxEtS,EAAEiI,KAAKpI,KAAK6D,QAAQoB,YAAY,eAAkB,SAAS4I,EAAGvF,KAC3DtI,KAAKkG,IAAIgE,OAAO5B,MAGnB,IAAIwxB,QAASlB,OAAOmB,KAAK/5B,KAAKkG,IAAIyN,aAAehN,OAAS,EACtDqzB,SAAW,aACNF,QAAU,IACb95B,KAAK8G,KAAK4K,KAAKuoB,QAEfxvB,WAAW,WACRzK,KAAK8G,KAAK4K,KAAKwoB,cACf,MAqBT,OAhBA/5B,GAAEiI,KAAKpI,KAAKkG,IAAIyN,YAAe,SAAS5O,IAAK8H,KACtCA,IAAI6D,WAAa4C,IAAIjS,MAAMkS,mBAC5B1G,IAAI6f,OAAO1kB,KAAK6E,IAAK,WAClBA,IAAIlI,KAAKqD,KAAK6E,KACd7M,KAAKkG,IAAIslB,OAAOzmB,KAEhBi1B,aAGHA,aAINA,YAGO,GAQVlC,UAAW,WAER93B,KAAK8G,KAAK4K,KAAK8Y,OAEf,IAAI2P,QAAS1uB,QAAQC,kBAAkB1L,KAAK8G,KAAK4K,KAAKjK,KAAKmE,cAAgB,IAAMH,QAAQ0b,mBAAmBnnB,KAAK8G,KAAK4K,KAAKjK,IAgB3H,IAbAzH,KAAK6D,QAAQgG,QAAQ,MAAO7J,KAAK8G,KAAK4K,KAAK0oB,OAAOnJ,KAClDjxB,KAAK6D,QAAQgG,QAAQ,MAAOswB,QAE5Bn6B,KAAK6D,QAAQgG,QAAQ,gBAAgB,GAAKrH,OAAQgB,WAGlDxD,KAAK6D,QAAQiU,eAAe,aAE5B9X,KAAK6D,QAAQiU,eAAe,cAC5B9X,KAAK6D,QAAQiU,eAAe,OAC5B9X,KAAK6D,QAAQiU,eAAe,SAAU,OACtC9X,KAAK6D,QAAQiU,eAAe,WAExB9X,KAAK4E,QAAQ0C,UAAUsB,UACxB,OAAQ5I,KAAK4E,QAAQ0C,UAAU2jB,aAAe,UAC3C,IAAK,SACFjrB,KAAKuM,iBAER,MAAK,EAEF,WADAvM,MAAK8G,KAAKuzB,kBAOnBr6B,KAAKkH,IAAIvC,OACTxE,EAAE,gBAAgBoQ,YAAY,qBAC9BvQ,KAAKoH,WACLpH,KAAK8G,KAAK4K,KAAK4oB,SACft6B,KAAKkH,IAAIgM,OAAOW,QAChB1T,EAAEqG,UAAUoD,QAAQ,kBAQvBmuB,SAAU,WAEP/3B,KAAK8G,KAAK4K,KAAK+R,WAAWzjB,KAAK8G,KAAKyzB,gBAAiB,mBAAoB,KAAM,OAC/Ev6B,KAAK8G,KAAK4K,KAAK+R,WAAWzjB,KAAK8G,KAAKypB,UAAW,KAAM,UAAW,QAChEvwB,KAAK8G,KAAK4K,KAAK+R,WAAWzjB,KAAK8G,KAAK0zB,WAAY,KAAM,WACtDx6B,KAAK8G,KAAK4K,KAAK+R,WAAWzjB,KAAK8G,KAAKyc,WAAY,KAAM,WAEtD,IAAI4N,MAAOnxB,KAAK8G,KAAK4K,KAAKyf,KACtB9nB,OAASrJ,KAAK8G,KAAK4K,KAAKrI,MAE5B,IAAI8nB,MAAQnxB,KAAK4E,QAAQE,IAAI,WAAWiF,OAAQ,CAC7C,GAAI0wB,mBAAoB,WACjBz6B,KAAK8G,KAAK4K,KAAKyf,KAAKc,gBAAgB5oB,OAAQrJ,KAAKqB,MAAMa,GAAGC,UAC3DnC,KAAK8G,KAAKskB,QAAQrhB,SAIxB,IAAkE,mBAAvDonB,MAAKuJ,mBAAmBvJ,KAAKyI,aAAavwB,SAA0B,CAC5E,GAAIswB,eAAgBr1B,KAAKyoB,MAAMoB,aAAarqB,QAAQ,kCAEpD3D,GAAEqG,UAAUC,GAAG,eAAgB,QAAS2qB,QAAO7hB,GAAI8E,MAE5CA,OAAShL,SAIboxB,oBAEAt6B,EAAEqG,UAAUO,IAAI,eAAgBqqB,WAGnCD,KAAKwJ,qBAAqB36B,KAAK8G,KAAK4K,KAAKrI,OAAQswB,cAActwB,QAAS8nB,KAAKyI,aAAavwB,aAG1FoxB,qBAKN,GAAKz6B,KAAKY,SAAYZ,KAAK6D,QAAQoB,YAAY,aAe5CjF,KAAK8G,KAAKoR,eAfgD,CAG1D/X,EAAEqG,UAAUQ,IAAI,sBAAuBhH,KAAK8G,KAAKoR,UAEjD/X,EAAE,0BAA0BwO,QAE5B,IAAIoN,IAAKC,KACNlK,KAAM,QACNmK,EAAE,SACFC,MAAO,oBAGVlc,MAAK8G,KAAK4K,KAAKyK,OAAOJ,GAAI/b,KAAK8G,KAAK8zB,UAKvC56B,KAAK8G,KAAKuzB,mBAMbA,gBAAiB,WAGdr6B,KAAK8G,KAAK4K,KAAK8mB,UAAYx4B,KAAK6D,QAAQC,QAAQ,eAAgB,GAAItB,OAAOgB,UAE3ErD,EAAEqG,UAAUoD,QAAQ,yBAMvBsO,SAAU,WAEHlY,KAAK8G,KAAK4K,KAAKmS,QAChB7jB,KAAK8G,KAAK4K,KAAKmS,MAAMgX,YAAY,SAAU,MAAO,QAClD76B,KAAK8G,KAAK4K,KAAKmS,MAAMqN,WAAWzlB,QAAQvJ,GAAG44B,YAC3C96B,KAAK8G,KAAK4K,KAAKmS,MAAMqN,WAAWzlB,QAAQvJ,GAAG64B,UAI9C,IAAI/iB,MAAOgjB,OAEPh7B,MAAK8G,KAAK4K,KAAKyf,MAEhBnZ,KAAKiE,EAAE,IAAKjc,KAAK8G,KAAK4K,KAAKyf,KAAK8J,qBAAqBC,IAGxD,IAAIC,WAAYn7B,KAAK6D,QAAQoB,YAAY,aAAe,QACtC,YAAdk2B,WACDnjB,KAAKiE,EAAE,QAAQ9S,EAAEgyB,WAAWD,IAG/B,IAAItQ,UAAW5qB,KAAK4E,QAAQE,IAAI,WAC5B8lB,WAA2C,mBAAxBA,UAASuQ,YAAgE,IAAlC14B,SAASmoB,SAASuQ,aAC7EnjB,KAAKiE,EAAE,YAAY9S,EAAEyhB,SAASuQ,YAAYD,KAG7Cl7B,KAAKyD,MAAM,gBAAiBuU,KAAKjL,YACjC/M,KAAK8G,KAAK4K,KAAK0pB,KAAKpjB,OAQvBggB,aAAc,WACXh4B,KAAKyD,MAAM,gBAEXzD,KAAK6D,QAAQwD,WAAW,OACxBrH,KAAK6D,QAAQwD,WAAW,OACxBrH,KAAK6D,QAAQwD,WAAW,gBACxBrH,KAAK6D,QAAQwD,WAAW,UACxBrH,KAAK6D,QAAQiU,eAAe,SAAU,OACtC9X,KAAK6D,QAAQiU,eAAe,WAE5B3X,EAAEqG,UAAUO,IAAI,iBAAkB/G,KAAK8G,KAAKgxB,WAC5C33B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAKixB,UAC3C53B,EAAEqG,UAAUO,IAAI,oBAAqB/G,KAAK8G,KAAKkxB,cAC/C73B,EAAEqG,UAAUO,IAAI,YAAa/G,KAAK8G,KAAKmxB,aACvC93B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAKoxB,YAC3C/3B,EAAEqG,UAAUO,IAAI,gBAAiB/G,KAAK8G,KAAKkM,YAE3ChT,KAAK8G,KAAK4K,KAAO,KAEjBvR,EAAE,oBAAoBwO,SAElB3O,KAAKe,sBACNZ,EAAEqG,UAAUoD,QAAQ,sBAAwB,SAAU,IACtDzJ,EAAE,gBAAgBwO,SAEd3O,KAAKgB,sBACNmF,OAAOk1B,SAAWr7B,KAAK4E,QAAQ8B,cAAcuJ,KAAK,UAGrDjQ,KAAKkH,IAAIW,OAAOC,eAGnB3B,OAAO6E,cAAchL,KAAKW;EAS7Bu3B,WAAY,SAAS3oB,GAAI8U,WACtBrkB,KAAKyD,MAAM,2BAA6B4gB,WAEpCrkB,KAAK4E,QAAQ0C,UAAUsB,WACxB5I,KAAKuM,mBASXyG,WAAY,WAET,GAAIhT,KAAK4E,QAAQ0C,UAAUsB,UACxB,OAAQ5I,KAAK4E,QAAQ0C,UAAU0L,YAAc,OAC1C,IAAK,MACFhT,KAAKkH,IAAIkO,cACT,MACH,KAAK,SACFpV,KAAKuM,iBACL,MACH,KAAK,QACL,KAAK,EACF,SAWZquB,SAAU,SAAS7e,IAMhB/b,KAAKyD,MAAM,cAAesY,GAE1B,IAAIlQ,WAEJ1L,GAAE4b,IAAIvP,KAAK,QAAQpE,KAAK,WACrB,GAAIX,KAAMtH,EAAE0G,MAAMoJ,KAAK,OACnBlB,KAAO5O,EAAE0G,MAAMoJ,KAAK,SAAWxI,IAC/BrG,IAAMpB,KAAKiH,SAASQ,KACpBmJ,IAAMzQ,EAAE0G,MAAMoJ,KAAK,eAEvBpE,SAAQtD,KAAKnH,KAEbpB,KAAK6D,QAAQiU,eAAe,MAAO1W,KAEnCpB,KAAK6D,QAAQgU,UAAUzW,KACpBqG,IAAKA,IACLsH,KAAMA,KACN0B,OAAQ,EACRG,IAAKA,IACLmF,SAGH/V,KAAKkH,IAAIW,OAAOiE,IAAI1K,OAGA,IAAnByK,QAAQlF,QACT3G,KAAKkH,IAAIW,OAAOmE,QAGnBhM,KAAK6D,QAAQ+D,YAAY,YAAaiE,SAEtC7L,KAAKkH,IAAIW,OAAOkE,QAAS,EACzB/L,KAAKyD,MAAM,iBACXtD,EAAEqG,UAAUoD,QAAQ,wBAUvB2wB,gBAAiB,SAASxe,IAgEvB,MA1DA/b,MAAKyD,MAAM,kBAAmBsY,IAE9B5b,EAAE4b,IAAIvP,KAAK,QAAQpE,KAAK,WACrB,GAAIX,KAAMtH,EAAE0G,MAAMoJ,KAAK,OACnBlB,KAAO5O,EAAE0G,MAAMoJ,KAAK,SAAWxI,IAC/BrG,IAAMpB,KAAKiH,SAASQ,KACpBmJ,IAAMzQ,EAAE0G,MAAMoJ,KAAK,eAGvB,IAAY,WAARW,IACD5Q,KAAKkH,IAAIW,OAAOyT,MAAMla,SAClB,CACJ,GAAImmB,IAAKvnB,KAAK6D,QAAQoB,YAAY,YAE9BsiB,IAAGzO,QAAQ1X,KAAO,IACnBmmB,GAAGhf,KAAKnH,KACRpB,KAAK6D,QAAQ+D,YAAY,YAAa2f,IAGzC,IAAI+T,MAAOt7B,KAAK6D,QAAQgU,UAAUzW,KAC/BqG,IAAKA,IACLsH,KAAMA,KACN6B,IAAKA,KAGK,aAAT0qB,MAEDt7B,KAAKkH,IAAIgJ,OAAO9O,KAChBpB,KAAKkH,IAAIW,OAAOuT,QAAQha,MAExBpB,KAAKkH,IAAIW,OAAOiE,IAAI1K,KAK1B,GAAY,SAARwP,KAA0B,SAARA,IAAgB,CACnC,GACsB6J,QADlB8gB,QAAUv7B,KAAK6D,QAAQoB,YAAY,WACnCu2B,UAAY,IAEhB,KAAKA,YAAaD,SACf9gB,OAAS8gB,QAAQC,WAEK,0BAAlB/gB,OAAO9M,QAAsC8M,OAAO7M,SAAS,KAAOnG,MACrEzH,KAAKyD,MAAM,0BAA4B+3B,WAEvCx7B,KAAKya,OAAO9L,OAAO6sB,eAM1Bx7B,KAAK6D,QAAQoB,YAAY,cAAiE,IAAjDjF,KAAK6D,QAAQoB,YAAY,aAAa0B,OAGjFxG,EAAE,0BAA0BwO,SAF5B3O,KAAKkH,IAAIW,OAAOmE,SAMZ,GASVuX,WAAY,SAAS0D,UAclBjnB,KAAKyD,MAAM,aAAcwjB,SAEzB,IAAIwU,OAAQt7B,EAAE8mB,UAAUhX,KAAK,QACzBoE,KAAOlU,EAAE8mB,UAAUhX,KAAK,QACxBxI,IAAMgE,QAAQC,kBAAkB2I,MAAMzI,cACtC+Y,EAAIlZ,QAAQ0b,mBAAmB9S,MAC/BjT,IAAMpB,KAAKiH,SAASQ,KACpB9D,KAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzC2U,IAAM/V,KAAK6D,QAAQoB,YAAY,MAAO7D,SACtCqP,OAAS,KACTirB,OAASv7B,EAAE8mB,UAAUza,KAAK,iCAE9B,IAAI/E,MAAQgE,QAAQC,kBAAkB1L,KAAK6D,QAAQC,QAAQ,QACxD,OAAO,CAGV,IAAc,UAAV23B,MAID,MAHAt7B,GAAEqG,UAAUoD,QAAQ,uBAAyByK,KAAM4S,WAEnDjnB,KAAK0E,MAAM,UAAYvE,EAAE8mB,UAAUhX,KAAK,UACjC,CAIV,IAAc,cAAVwrB,MAOD,MANAz7B,MAAK6D,QAAQ+D,YAAY,aACtBH,IAAKA,IACLunB,QAAS,KAEZhvB,KAAKya,OAAO3O,IAAI3L,EAAEgJ,EAAE,sBAAuBhJ,EAAEgJ,EAAE,QAAU,IAAM1B,IAAK,yBAA2BA,OAExF,CACH,IAAc,gBAAVg0B,OAAqC,iBAAVA,MACnChrB,OAASzQ,KAAKqB,MAAMI,OAAOqX,QAAQ,eAC/B,CACJ,GAAI1M,MAAOjM,EAAE8mB,UAAUza,KAAK,QAAQF,MAEjCmE,QAASzQ,KAAKqB,MAAMI,OAAOqX,QADjB,KAAT1M,KACkC,SAEAA,MAI1B,IAAXqE,aACMsF,KAAI4O,GAEX5O,IAAI4O,GAAKlU,MAGZ,IAAIkrB,WACAxwB,IAAM,EAAGsI,KAAO,IACpB,KAAKA,OAAQsC,KACNA,IAAIJ,eAAelC,OAChBtI,KAAO4K,IAAItC,QACRtI,MAAQ4K,IAAItC,QACbkoB,UACAxwB,IAAM4K,IAAItC,OAEbkoB,OAAOpzB,KAAKkL,MAmBrB,IAdoB,IAAhB9P,KAAK8M,QAAgBtF,IAAM,GAE5BnL,KAAKoK,aAAagf,QACf/I,MAAO1c,KAAKoL,KACZrL,IAAKvD,EAAEgJ,EAAE,mBACT2W,OAAQ1e,MAIduC,KAAK8M,OAAStF,IACdxH,KAAKoS,IAAM4lB,OACXh4B,KAAK8D,IAAMA,IAGPi0B,OAAO/0B,OAAS,EAAG,CACpB,GAAImQ,OAAQ4kB,OAAOlvB,KAAK,QAEpBsK,OAAMnQ,OAAS,GAAKmQ,MAAMxK,SAAW3I,KAAKmN,SAC3C9Q,KAAK6D,QAAQiU,eAAe,SAAUnU,KAAKmN,QAC3CnN,KAAKmN,OAASgG,MAAMxK,QAoB1B,MAfItM,MAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuF,OAAS,GACnC3G,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,MAAO8D,KAGxCzH,KAAK6D,QAAQ+D,YAAY,QAASxG,IAAKuC,MACvC3D,KAAK6D,QAAQ+D,YAAY,MAAOxG,IAAK2U,KAErC/V,KAAKyD,MAAM,aAAe4Q,KAAO,MAAQ5D,QAEzCzQ,KAAKkH,IAAIgJ,OAAO9O,KAChBpB,KAAKkH,IAAIW,OAAOuT,QAAQha,KAExBjB,EAAEqG,UAAUoD,QAAQ,iBAAmByK,KAAM5D,OAAQwW,YAG9C,GAUVsJ,UAAW,SAAS5e,QAEjB,GACIrD,SAASstB,OADTxc,UAAYjf,EAAEwR,QAAQnF,KAAK,oBAAsBxM,KAAKqB,MAAMa,GAAGE,QAAU,KAGzEgd,WAAUzY,OAAS,GACpB2H,QAAU8Q,UAAU5S,KAAK,aACzB4S,WAAY,EACZwc,OAASz7B,EAAEwR,QAAQnF,KAAK,aAAexM,KAAKqB,MAAMa,GAAGC,QAAU,MAEzC,IAAlBy5B,OAAOj1B,SACRi1B,QAAS,GAGZ57B,KAAKyD,MAAM,6BAA8B6K,WAEzCA,QAAUqD,OACVyN,WAAY,EACZwc,QAAS,EAET57B,KAAKyD,MAAM,mBAAoB6K,SAGlC,IAAII,MAAOvO,EAAEmO,SAAS9B,KAAK,cAAcF,MAEzC,KAAKoC,MAASA,KAAKpF,MAAM,WAAa8V,UACnC,OAAO,CAGV,IAGIhe,KAHA0Q,KAAO3R,EAAEmO,SAAS2B,KAAK,QACvBoE,KAAOlU,EAAEmO,SAAS2B,KAAK,QACvB4rB,IAAM17B,EAAEmO,SAAS2B,KAAK,MAGtBF,MAAQ5P,EAAEmO,SAAS9B,KAAK,iCAExB6S,MAAStP,MAAMpJ,OAAS,EAAK,GAAInE,MAAKuN,MAAME,KAAK,UAAY,GAAIzN,KAGrE,IAFA6c,MAAQA,MAAM7b,UAEVo4B,OAAQ,CACT,GAAI1c,WAAwC,SAA3B0c,OAAOnoB,KAAK,WAAyB,MAAQ,IAK9D,OAJArS,KAAMpB,KAAKiH,SAAwB,QAAdiY,UAAuB/e,EAAEmO,SAAS2B,KAAK,MAAQoE,MAEpErU,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK8d,UAAWxQ,MAAM,EAAO0Q,UAAWC,QAE7D,EAECD,YAGR1Q,KAAO2F,KAAO,IAAMlU,EAAEgJ,EAAE,MAAQ,IAAMhJ,EAAEwR,QAAQ1B,KAAK,MAAQ,IAAMvB,KAAO,IAE1E2F,KAAOlU,EAAEwR,QAAQ1B,KAAK,QAGzB,IAAIxI,KAAMgE,QAAQC,kBAAkB2I,KACpCjT,KAAMpB,KAAKiH,SAASQ,IACpB,IAAI9D,MAAO3D,KAAK6D,QAAQoB,YAAY,QAAS7D,KACzC06B,QAAU37B,EAAEmO,SAAS9B,KAAK,qCAE9B,IAAa,OAAT7I,KAAe,CAGhB,GAAIqb,MAAOhf,KAAK6D,QAAQoB,YAAY,OAAQ7D,QAExB,KAAhB4d,KAAKrY,QACN3G,KAAKya,OAAO3O,IAAI3L,EAAEgJ,EAAE,kBAAmBhJ,EAAEgJ,EAAE,iDAAmD,KAAO/H,IAAM,KAAM,yBAA2BA,KAG/I,IAAIsC,KAAM1D,KAAK2M,WAAW+B,KAK1B,OAJAhL,KAAM1D,KAAK0M,WAAWhJ,KAEtB1D,KAAK6D,QAAQ6b,YAAYte,IAAK,KAAMsC,KAAK,EAAO0b,UAAWC,QAEpD,EAGV,GAAI7Q,KAAMxO,KAAKkH,IAAIf,OAAOxB,KAAKvD,IAqC/B,OAlCa,SAAT0Q,OACDtD,IAAI7K,KAAK,MAAO0Q,MAChBrU,KAAK6D,QAAQ+P,eAAe,QAASxS,KAClCqG,IAAK4M,QAIXlU,EAAEqG,UAAUoD,QAAQ,gBAAkByK,KAAM3F,OAGxC1O,KAAKK,SAAWL,KAAKkG,IAAIyN,QAAQvS,MAClCpB,KAAKkG,IAAIgE,OAAO9I,KAGdge,WAAqB,OAARyc,MAAgBC,QAAQn1B,QAAmB,OAAThD,MAA+B,SAAbA,KAAKiN,KAA+B,SAAbjN,KAAKiN,KAA4B,SAATkB,MAElH9R,KAAK8G,KAAK4K,KAAK0pB,KAAKW,MACjBx7B,GAAI8T,OACJ4H,EAAE,YACFC,MAAO,oBACPhF,GAAI2kB,OAIN77B,KAAKkG,IAAIyN,QAAQgC,eAAevU,KACjCpB,KAAKkG,IAAIyN,QAAQvS,KAAK46B,WAAWttB,MAC9B2Q,MAAOA,MACPD,UAAWA,YAGdpf,KAAKkH,IAAIf,OAAO2N,YAAY1S,IAAK,KAAMsN,MAAM,EAAO0Q,UAAWC,QAI3D,GAUV4Y,YAAa,SAAS1oB,GAAI5L,MACvB3D,KAAK6D,QAAQgG,QAAQ,MAAOlG,KAAKk0B,MASpCrjB,aAAc,SAASH,KAAM2a,SACtBhvB,KAAKK,QACNL,KAAK8G,KAAK4K,KAAK0pB,KAAKJ,OACjBz6B,GAAI8T,KACJvC,KAAM,QAAY,aAAe,kBAGpC9R,KAAK6D,QAAQiU,eAAe,aAC5B9X,KAAKkH,IAAIgM,OAAOW,SAGhB7T,KAAK6D,QAAQ+P,eAAe,YAAa,UAAWob,UAU1D/Z,SAAU,SAASnM,SAAUiM,OAC1B,GAAI3T,KAAMpB,KAAKiH,SAAS6B,SAExB,IAAI9I,KAAKK,OAAQ,CAEd,GAAI0b,IAAKC,KACNlK,KAAM,QACNmK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFxU,IAAKqB,SACLiG,KAAMgG,OAAS,IAElB/U,MAAK8G,KAAK4K,KAAKyK,OAAOJ,IAGtB/b,KAAK8G,KAAK4K,KAAK0pB,KAAKJ,OACjBz6B,GAAIuI,SACJgJ,KAAM,eAGT9R,KAAK6D,QAAQiU,eAAe,OAAS1W,SAErCpB,MAAK6D,QAAQ+D,YAAY,OAASxG,KAC/B0H,SAAUA,SACViM,MAAOA,OAAS,QAUzBG,YAAa,SAASzN,KACnB,GAAIrG,KAAMpB,KAAKiH,SAASQ,KAGpBsU,GAAKC,KACNlK,KAAM,QACNmK,EAAE,SACFC,MAAO,qBACPD,EAAE,QACFxU,IAAKgE,QAAQC,kBAAkBjE,KAC/Bw0B,aAAc,UAEjBj8B,MAAK8G,KAAK4K,KAAKyK,OAAOJ,IAEtB/b,KAAKkH,IAAIW,OAAOyT,MAAMla,MAGzBo5B,WAAY,SAASlsB,SAClB,GAAI+F,MAAOlU,EAAEmO,SAAS2B,KAAK,QACvBxI,IAAMgE,QAAQC,kBAAkB2I,MAChCjT,IAAMpB,KAAKiH,SAASQ,KACpB2Y,SAAWjgB,EAAEmO,SAAS9B,KAAK,sCAE/B,IAAI4T,SAASzZ,OAAQ,CAClB,GAEIkH,GAFAquB,WAAa9b,SAASnQ,KAAK,MAAMtE,QAAQ,IAAK,KAC9CqT,KAAOhf,KAAK6D,QAAQoB,YAAY,OAAQ7D,IAG5C,KAAKyM,EAAImR,KAAKrY,OAAS,EAAGkH,GAAK,EAAGA,IAC/B,GAAImR,KAAKnR,GAAG8G,MAAQunB,WAAY,CAC7Bld,KAAKnR,GAAGuS,UAAW,EAEnBjgB,EAAE,IAAM+7B,YAAY1rB,SAAS,iBAE7BxQ,KAAK6D,QAAQ+D,YAAY,OAAQxG,IAAK4d,KACtC,QAKT,OAAO,GAWVW,YAAa,SAASve,IAAKsC,IAAKiR,KACzB3U,KAAKkG,IAAIyN,QAAQgC,eAAevU,KACjCpB,KAAKkG,IAAIyN,QAAQvS,KAAK+6B,QAAQz4B,IAAKiR,KAEnC3U,KAAK8G,KAAK2kB,aAAazrB,KAAKkH,IAAIf,OAAOrB,IAAI1D,KAAKuC,KAAK,OAAQD,IAAKiR,MAaxE8W,aAAc,SAAShkB,IAAK/D,IAAKiR,KAC9B,GAAIhR,MAAO3D,KAAK6D,QAAQoB,YAAY,QAASjF,KAAKiH,SAASQ,UACvD20B,MAAS3wB,QAAQC,kBAAkBjE,OAASA,IAC5CqK,KAAOnO,KAAKmO,MAAQ,OAEpBuqB,OAASN,MACVx7B,GAAIkH,IACJqK,KAAMA,KACNoF,GAAIvC,MACJsH,EAAE,QAAQ9S,EAAEzF,IAEX1D,MAAK8G,KAAKskB,QAAQkR,SAAW54B,IAAI4F,MAAM,WACxC+yB,OAAOnB,KAAKjf,EAAE,WACXC,MAAOlc,KAAKqB,MAAMa,GAAGC,UAId,SAAT2P,OAAoBsqB,OAASp8B,KAAK8G,KAAK4K,KAAKyf,KAAKc,gBAAgBxqB,IAAKgE,QAAQvJ,GAAG64B,YAElFsB,OAAOnB,KAAKjf,EAAE,WACXC,MAAO,sBAIblc,KAAK8G,KAAK4K,KAAK0pB,KAAKiB,SAWvBxlB,UAAW,SAASzV,IAAKqrB,GAAI3G,UACtB9lB,KAAKK,OACNL,KAAK8G,KAAK4K,KAAK1C,MAAMlK,IAAI2nB,GAAIrrB,IAAK0kB,WAElC9lB,KAAK6D,QAAQ+D,YAAY,QAASxG,IAAK,YAAa,GAAKoB,OAAQgB,WAEjErD,EAAEqG,UAAUQ,IAAI,oBAAqB,SAASuI,GAAIgtB,QAC3CA,QAA2B,YAAjBA,OAAO7f,MAClB+P,GAAGtsB,EAAEo8B,OAAO54B,MAAMmB,IAAI,IAEtBghB,eAaZ1P,qBAAsB,SAAS3O,KAC5B,GAAIzH,KAAK8G,KAAK4K,KACX,MAAO1R,MAAK8G,KAAK4K,KAAKyf,KAAK/a,qBAAqB3O,IAGnD,IAAI+0B,aAAcl4B,KAAKyoB,MAAMoB,aAAarqB,QAAQ,kCAC9C24B,kBAAoBn4B,KAAKyoB,MAAMoB,aAAarqB,QAAQ,uCAExD,OAAI04B,aAAY/0B,KACNg1B,kBAAkBD,YAAY/0B,MAGjC,OASbzH,KAAK8G,KAAKskB,SACPkR,SAAS,EAQTvyB,OAAQ,SAAS0iB,IACd,GAAI1Q,IAAKC,KACNlK,KAAM,QACNmK,EAAE,UACFC,MAAOlc,KAAKqB,MAAMa,GAAGC,SAGxBnC,MAAK8G,KAAK4K,KAAKyK,OAAOJ,GAAI,WACvB/b,KAAK8G,KAAKskB,QAAQkR,SAAU,EAE5Bt8B,KAAKyD,MAAM,mBAEPgpB,IACDA,GAAGzkB,KAAKnB,OAEX,SAAS8K,QACT3R,KAAKyE,KAAK,2BAA4BkN,WAU5C+qB,QAAS,SAASjQ,IACf,GAAI1Q,IAAKC,KACNlK,KAAM,QACNmK,EAAE,WACFC,MAAOlc,KAAKqB,MAAMa,GAAGC,SAGxBnC,MAAK8G,KAAK4K,KAAKyK,OAAOJ,GAAI,WACvB/b,KAAK8G,KAAKskB,QAAQkR,SAAU,EAE5Bt8B,KAAKyD,MAAM,oBAEPgpB,IACDA,GAAGzkB,KAAKnB,OAEX,SAAS8K,QACT3R,KAAKyE,KAAK,4BAA6BkN,WAU7CgrB,QAAS,SAASt4B,KACf,MAAIA,QAAQ,EAIRrE,KAAK4E,QAAQE,IAAI,WAAWiF,OACtB/J,KAAK8G,KAAKskB,QAAQrhB,SAGrB/J,KAAK8G,KAAKskB,QAAQsR,UARzB,UAYJE"} \ No newline at end of file
diff --git a/build/lib/jsxc.dep.js b/build/lib/jsxc.dep.js
index 3e0e9f3a..50d0c427 100644
--- a/build/lib/jsxc.dep.js
+++ b/build/lib/jsxc.dep.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.0.0 - 2015-05-08
+ * jsxc v2.0.1 - 2015-05-23
*
* This file concatenates all dependencies of jsxc.
*
@@ -6699,6 +6699,7 @@ Strophe.addConnectionPlugin('disco',
});
}(jQuery));
+
/*!
* Source: lib/strophe.vcard.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
*/
@@ -6818,7 +6819,6 @@ Strophe.addConnectionPlugin('jingle', {
to: iq.getAttribute('from'),
id: iq.getAttribute('id')
});
- console.log('on jingle ' + action);
var sess = this.sessions[sid];
if ('session-initiate' != action) {
if (sess === null) {
@@ -6867,11 +6867,6 @@ Strophe.addConnectionPlugin('jingle', {
sess.initiate($(iq).attr('from'), false);
sess.setRemoteDescription($(iq).find('>jingle'), 'offer');
- if ($(iq).find('>jingle>muted[xmlns="http://jitsi.org/protocol/meet#startmuted"]').length) {
- console.log('got a request to start muted');
- sess.startmuted = true;
- }
-
this.sessions[sess.sid] = sess;
this.jid2session[sess.peerjid] = sess;
@@ -6886,7 +6881,6 @@ Strophe.addConnectionPlugin('jingle', {
$(document).trigger('callaccepted.jingle', [sess.sid]);
break;
case 'session-terminate':
- console.log('terminating...');
sess.terminate();
this.terminate(sess.sid);
if ($(iq).find('>jingle>reason').length) {
@@ -6968,7 +6962,6 @@ Strophe.addConnectionPlugin('jingle', {
var sess = this.jid2session[jid];
if (sess) {
sess.terminate();
- console.log('peer went away silently', jid);
delete this.sessions[sess.sid];
delete this.jid2session[jid];
$(document).trigger('callterminated.jingle', [sess.sid, 'gone']);
@@ -7006,12 +6999,8 @@ Strophe.addConnectionPlugin('jingle', {
break;
case 'turn':
dict.url = 'turn:';
- if (el.attr('username')) { // https://code.google.com/p/webrtc/issues/detail?id=1508
- if (navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10) < 28) {
- dict.url += el.attr('username') + '@';
- } else {
- dict.username = el.attr('username'); // only works in M28
- }
+ if (el.attr('username')) {
+ dict.username = el.attr('username');
}
dict.url += el.attr('host');
if (el.attr('port') && el.attr('port') != '3478') {
@@ -7267,11 +7256,11 @@ JingleSession.prototype.sendIceCandidate = function (candidate) {
}, 20);
}
- this.drip_container.push(event.candidate);
+ this.drip_container.push(candidate);
return;
} else {
console.log('sending single candidate');
- self.sendIceCandidates([event.candidate]);
+ self.sendIceCandidates([candidate]);
}
}
}
@@ -7285,7 +7274,7 @@ JingleSession.prototype.sendIceCandidate = function (candidate) {
action: this.peerconnection.localDescription.type == 'offer' ? 'session-initiate' : 'session-accept',
initiator: this.initiator,
sid: this.sid});
- if (this.nickname != null) {
+ if (this.nickname !== null) {
init.c('nick', {xmlns:'http://jabber.org/protocol/nick'}).t(this.nickname).up();
}
if (this.startmuted) {
@@ -7333,11 +7322,12 @@ JingleSession.prototype.sendIceCandidates = function (candidates) {
sid: this.sid});
for (var mid = 0; mid < this.localSDP.media.length; mid++) {
var cands = candidates.filter(function (el) { return el.sdpMLineIndex == mid; });
+ var mline = SDPUtil.parse_mline(this.localSDP.media[mid].split('\r\n')[0]);
if (cands.length > 0) {
var ice = SDPUtil.iceparams(this.localSDP.media[mid], this.localSDP.session);
ice.xmlns = 'urn:xmpp:jingle:transports:ice-udp:1';
cand.c('content', {creator: this.initiator == this.me ? 'initiator' : 'responder',
- name: cands[0].sdpMid
+ name: (cands[0].sdpMid? cands[0].sdpMid : mline.media)
}).c('transport', ice);
for (var i = 0; i < cands.length; i++) {
cand.c('candidate', SDPUtil.candidateToJingle(cands[i].candidate)).up();
@@ -7402,7 +7392,7 @@ JingleSession.prototype.createdOffer = function (sdp) {
action: 'session-initiate',
initiator: this.initiator,
sid: this.sid});
- if (this.nickname != null) {
+ if (this.nickname !== null) {
init.c('nick', {xmlns:'http://jabber.org/protocol/nick'}).t(this.nickname).up();
}
if (this.startmuted) {
@@ -8016,7 +8006,8 @@ SDP.prototype.removeSessionLines = function(prefix) {
});
this.raw = this.session + this.media.join('');
return lines;
-}
+};
+
// remove lines matching prefix from a media section specified by mediaindex
// TODO: non-numeric mediaindex could match mid
SDP.prototype.removeMediaLines = function(mediaindex, prefix) {
@@ -8027,7 +8018,7 @@ SDP.prototype.removeMediaLines = function(mediaindex, prefix) {
});
this.raw = this.session + this.media.join('');
return lines;
-}
+};
// add content's to a jingle element
SDP.prototype.toJingle = function (elem, thecreator) {
@@ -8068,12 +8059,6 @@ SDP.prototype.toJingle = function (elem, thecreator) {
// prefer identifier from a=mid if present
var mid = SDPUtil.parse_mid(SDPUtil.find_line(this.media[i], 'a=mid:'));
elem.attrs({ name: mid });
-
- // old BUNDLE plan, to be removed
- if (bundle.indexOf(mid) != -1) {
- elem.c('bundle', {xmlns: 'http://estos.de/ns/bundle'}).up();
- bundle.splice(bundle.indexOf(mid), 1);
- }
}
if (SDPUtil.find_line(this.media[i], 'a=rtpmap:').length) {
elem.c('description',
@@ -8129,12 +8114,6 @@ SDP.prototype.toJingle = function (elem, thecreator) {
elem.up();
});
elem.up();
-
- // old proprietary mapping, to be removed at some point
- tmp = SDPUtil.parse_ssrc(this.media[i]);
- tmp.xmlns = 'http://estos.de/ns/ssrc';
- tmp.ssrc = ssrc;
- elem.c('ssrc', tmp).up(); // ssrc is part of description
}
if (SDPUtil.find_line(this.media[i], 'a=rtcp-mux')) {
@@ -8231,7 +8210,7 @@ SDP.prototype.TransportToJingle = function (mediaindex, elem) {
}
}
elem.up(); // end of transport
-}
+};
SDP.prototype.RtcpFbToJingle = function (mediaindex, elem, payloadtype) { // XEP-0293
var lines = SDPUtil.find_lines(this.media[mediaindex], 'a=rtcp-fb:' + payloadtype);
@@ -8304,7 +8283,6 @@ SDP.prototype.fromJingle = function (jingle) {
// for backward compability, to be removed soon
// assume all contents are in the same bundle group, can be improved upon later
var bundle = $(jingle).find('>content').filter(function (idx, content) {
- //elem.c('bundle', {xmlns:'http://estos.de/ns/bundle'});
return $(content).find('>bundle').length > 0;
}).map(function (idx, content) {
return content.getAttribute('name');
@@ -8440,17 +8418,6 @@ SDP.prototype.jingle2media = function (content) {
media += '\r\n';
});
});
-
- if (tmp.length === 0) {
- // fallback to proprietary mapping of a=ssrc lines
- tmp = content.find('description>ssrc[xmlns="http://estos.de/ns/ssrc"]');
- if (tmp.length) {
- media += 'a=ssrc:' + ssrc + ' cname:' + tmp.attr('cname') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' msid:' + tmp.attr('msid') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' mslabel:' + tmp.attr('mslabel') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' label:' + tmp.attr('label') + '\r\n';
- }
- }
return media;
};
@@ -8692,8 +8659,6 @@ SDPUtil = {
return needles;
},
candidateToJingle: function (line) {
- // a=candidate:2979166662 1 udp 2113937151 192.168.2.100 57698 typ host generation 0
- // <candidate component=... foundation=... generation=... id=... ip=... network=... port=... priority=... protocol=... type=.../>
if (line.indexOf('candidate:') === 0) {
line = 'a=' + line;
} else if (line.substring(0, 12) != 'a=candidate:') {
@@ -8719,8 +8684,7 @@ SDPUtil = {
candidate.port = elems[5];
// elems[6] => "typ"
candidate.type = elems[7];
-
- candidate.generation = '0'; // fippo from jitsi-meet: default, may be overwritten below
+ candidate.generation = '0';
for (i = 8; i < elems.length; i += 2) {
switch (elems[i]) {
@@ -8745,42 +8709,31 @@ SDPUtil = {
return candidate;
},
candidateFromJingle: function (cand) {
- var line = 'a=candidate:';
- line += cand.getAttribute('foundation');
- line += ' ';
- line += cand.getAttribute('component');
- line += ' ';
- line += cand.getAttribute('protocol'); //.toUpperCase(); // chrome M23 doesn't like this
- line += ' ';
- line += cand.getAttribute('priority');
- line += ' ';
- line += cand.getAttribute('ip');
- line += ' ';
- line += cand.getAttribute('port');
- line += ' ';
- line += 'typ';
- line += ' ' + cand.getAttribute('type');
- line += ' ';
+ var parts = [
+ 'a=candidate:' + cand.getAttribute('foundation'),
+ cand.getAttribute('component'),
+ cand.getAttribute('protocol'),
+ cand.getAttribute('priority'),
+ cand.getAttribute('ip'),
+ cand.getAttribute('port'),
+ 'typ',
+ cand.getAttribute('type')
+ ];
switch (cand.getAttribute('type')) {
case 'srflx':
case 'prflx':
case 'relay':
if (cand.getAttribute('rel-addr') && cand.getAttribute('rel-port')) {
- line += 'raddr';
- line += ' ';
- line += cand.getAttribute('rel-addr');
- line += ' ';
- line += 'rport';
- line += ' ';
- line += cand.getAttribute('rel-port');
- line += ' ';
+ parts.push('raddr');
+ parts.push(cand.getAttribute('rel-addr'));
+ parts.push('rport');
+ parts.push(cand.getAttribute('rel-port'));
}
break;
}
- line += 'generation';
- line += ' ';
- line += cand.getAttribute('generation') || '0';
- return line + '\r\n';
+ parts.push('generation');
+ parts.push(cand.getAttribute('generation') || '0');
+ return parts.join(' ') + '\r\n';
}
};
}(jQuery));
@@ -8859,7 +8812,7 @@ TraceablePeerConnection = function(ice_config, constraints) {
if (self.ondatachannel !== null) {
self.ondatachannel(event);
}
- }
+ };
if (!navigator.mozGetUserMedia) {
this.statsinterval = window.setInterval(function() {
self.peerconnection.getStats(function(stats) {
@@ -8890,18 +8843,19 @@ TraceablePeerConnection = function(ice_config, constraints) {
}, 1000);
}
-};
+}
dumpSDP = function(description) {
return 'type: ' + description.type + '\r\n' + description.sdp;
-}
+};
-if (TraceablePeerConnection.prototype.__defineGetter__ !== undefined) {
- TraceablePeerConnection.prototype.__defineGetter__('signalingState', function() { return this.peerconnection.signalingState; });
- TraceablePeerConnection.prototype.__defineGetter__('iceConnectionState', function() { return this.peerconnection.iceConnectionState; });
- TraceablePeerConnection.prototype.__defineGetter__('localDescription', function() { return this.peerconnection.localDescription; });
- TraceablePeerConnection.prototype.__defineGetter__('remoteDescription', function() { return this.peerconnection.remoteDescription; });
-}
+['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
+ Object.defineProperty(TraceablePeerConnection.prototype, prop, {
+ get: function () {
+ return this.peerconnection[prop]
+ }
+ });
+});
TraceablePeerConnection.prototype.addStream = function (stream) {
this.trace('addStream', stream.id);
@@ -8916,7 +8870,7 @@ TraceablePeerConnection.prototype.removeStream = function (stream) {
TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
this.trace('createDataChannel', label, opts);
this.peerconnection.createDataChannel(label, opts);
-}
+};
TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
var self = this;
@@ -9003,21 +8957,19 @@ TraceablePeerConnection.prototype.addIceCandidate = function (candidate, success
var self = this;
this.trace('addIceCandidate', JSON.stringify(candidate, null, ' '));
this.peerconnection.addIceCandidate(candidate);
- /* maybe later
this.peerconnection.addIceCandidate(candidate,
function () {
self.trace('addIceCandidateOnSuccess');
- successCallback();
+ if (successCallback) successCallback();
},
function (err) {
self.trace('addIceCandidateOnFailure', err);
- failureCallback(err);
+ if (failureCallback) failureCallback(err);
}
);
- */
};
-TraceablePeerConnection.prototype.getStats = function(callback, errback) {
+TraceablePeerConnection.prototype.getStats = function(callback) {
if (navigator.mozGetUserMedia) {
// ignore for now...
} else {
@@ -9028,9 +8980,9 @@ TraceablePeerConnection.prototype.getStats = function(callback, errback) {
// mozilla chrome compat layer -- very similar to adapter.js
setupRTC = function (){
var RTC = null;
- if (navigator.mozGetUserMedia) {
+ if (navigator.mozGetUserMedia && mozRTCPeerConnection) {
console.log('This appears to be Firefox');
- var version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
+ var version = navigator.userAgent.match(/Firefox/) ? parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10) : 0;
if (version >= 22) {
RTC = {
peerconnection: mozRTCPeerConnection,
@@ -9042,10 +8994,6 @@ setupRTC = function (){
},
pc_constraints: {}
};
- if (!MediaStream.prototype.getVideoTracks)
- MediaStream.prototype.getVideoTracks = function () { return []; };
- if (!MediaStream.prototype.getAudioTracks)
- MediaStream.prototype.getAudioTracks = function () { return []; };
RTCSessionDescription = mozRTCSessionDescription;
RTCIceCandidate = mozRTCIceCandidate;
}
@@ -9061,19 +9009,6 @@ setupRTC = function (){
// DTLS should now be enabled by default but..
pc_constraints: {'optional': [{'DtlsSrtpKeyAgreement': 'true'}]}
};
- if (navigator.userAgent.indexOf('Android') != -1) {
- RTC.pc_constraints = {}; // disable DTLS on Android
- }
- if (!webkitMediaStream.prototype.getVideoTracks) {
- webkitMediaStream.prototype.getVideoTracks = function () {
- return this.videoTracks;
- };
- }
- if (!webkitMediaStream.prototype.getAudioTracks) {
- webkitMediaStream.prototype.getAudioTracks = function () {
- return this.audioTracks;
- };
- }
}
if (RTC === null) {
try { console.log('Browser does not appear to be WebRTC-capable'); } catch (e) { }
@@ -9108,23 +9043,19 @@ getUserMediaWithConstraints = function(um, resolution, bandwidth, fps) {
case 'fullhd':
constraints.video.mandatory.minWidth = 1920;
constraints.video.mandatory.minHeight = 1080;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '720':
case 'hd':
constraints.video.mandatory.minWidth = 1280;
constraints.video.mandatory.minHeight = 720;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '360':
constraints.video.mandatory.minWidth = 640;
constraints.video.mandatory.minHeight = 360;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '180':
constraints.video.mandatory.minWidth = 320;
constraints.video.mandatory.minHeight = 180;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
// 4:3
case '960':
@@ -9149,6 +9080,10 @@ getUserMediaWithConstraints = function(um, resolution, bandwidth, fps) {
break;
}
+ // take what is configured and try not to be more intelligent
+ if (constraints.video.minWidth) constraints.video.maxWidth = constraints.video.minWidth;
+ if (constraints.video.minHeight) constraints.video.maxHeight = constraints.video.minHeight;
+
if (bandwidth) { // doesn't work currently, see webrtc issue 1846
if (!constraints.video) constraints.video = {mandatory: {}};//same behaviour as true
constraints.video.optional = [{bandwidth: bandwidth}];
@@ -9445,7 +9380,11 @@ getUserMediaWithConstraints = function(um, resolution, bandwidth, fps) {
} else if (typeof module !== 'undefined' && module.exports) {
module.exports = factory(require('crypto'))
} else {
- root.BigInt = factory(root.crypto || root.msCrypto)
+ try {
+ root.BigInt = factory(root.crypto || root.msCrypto)
+ } catch(e) {
+ console.warn(e.message);
+ }
}
}(this, function (crypto) {
@@ -14076,7 +14015,9 @@ CryptoJS.mode.CTR = (function () {
} else {
root.OTR = {}
root.DSA = {}
- factory.call(root)
+ if (typeof root.BigInt !== 'undefined') {
+ factory.call(root)
+ }
}
}(this, function () {
diff --git a/build/lib/jsxc.dep.min.js b/build/lib/jsxc.dep.min.js
index 1c88c342..fca0008f 100644
--- a/build/lib/jsxc.dep.min.js
+++ b/build/lib/jsxc.dep.min.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.0.0 - 2015-05-08
+ * jsxc v2.0.1 - 2015-05-23
*
* This file concatenates all dependencies of jsxc.
*
@@ -53,17 +53,17 @@ function($){Strophe.addConnectionPlugin("caps",{HASH:"sha-1",node:"http://stroph
var buildIq;buildIq=function(type,jid,vCardEl){var iq;return iq=$iq(jid?{type:type,to:jid}:{type:type}),iq.c("vCard",{xmlns:Strophe.NS.VCARD}),vCardEl&&iq.cnode(vCardEl),iq},Strophe.addConnectionPlugin("vcard",{_connection:null,init:function(conn){return this._connection=conn,Strophe.addNamespace("VCARD","vcard-temp")},get:function(handler_cb,jid,error_cb){var iq;return iq=buildIq("get",jid),this._connection.sendIQ(iq,handler_cb,error_cb)},set:function(handler_cb,vCardEl,jid){var iq;return iq=buildIq("set",jid,vCardEl),this._connection.sendIQ(iq,handler_cb,error_rb)}}),/*!
* Source: lib/strophe.jingle/strophe.jingle.js, license: MIT, url: https://github.com/ESTOS/strophe.jingle
*/
-function($){Strophe.addConnectionPlugin("jingle",{connection:null,sessions:{},jid2session:{},ice_config:{iceServers:[]},pc_constraints:{},media_constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},localStream:null,init:function(conn){this.connection=conn,this.connection.disco&&(this.connection.disco.addFeature("urn:xmpp:jingle:1"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:1"),this.connection.disco.addFeature("urn:xmpp:jingle:transports:ice-udp:1"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:audio"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:video"),this.connection.disco.addFeature("urn:ietf:rfc:5761")),this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null)},onJingle:function(iq){var sid=$(iq).find("jingle").attr("sid"),action=$(iq).find("jingle").attr("action"),ack=$iq({type:"result",to:iq.getAttribute("from"),id:iq.getAttribute("id")});console.log("on jingle "+action);var sess=this.sessions[sid];if("session-initiate"!=action){if(null===sess)return ack.type="error",ack.c("error",{type:"cancel"}).c("item-not-found",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up().c("unknown-session",{xmlns:"urn:xmpp:jingle:errors:1"}),this.connection.send(ack),!0;if(Strophe.getBareJidFromJid(iq.getAttribute("from"))!=Strophe.getBareJidFromJid(sess.peerjid))return console.warn("jid mismatch for session id",sid,iq.getAttribute("from"),sess.peerjid),ack.type="error",ack.c("error",{type:"cancel"}).c("item-not-found",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up().c("unknown-session",{xmlns:"urn:xmpp:jingle:errors:1"}),this.connection.send(ack),!0}else if(void 0!==sess)return ack.type="error",ack.c("error",{type:"cancel"}).c("service-unavailable",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up(),console.warn("duplicate session id",sid),this.connection.send(ack),!0;switch(this.connection.send(ack),action){case"session-initiate":sess=new JingleSession($(iq).attr("to"),$(iq).find("jingle").attr("sid"),this.connection),this.localStream&&sess.localStreams.push(this.localStream),sess.media_constraints=this.media_constraints,sess.pc_constraints=this.pc_constraints,sess.ice_config=this.ice_config,sess.initiate($(iq).attr("from"),!1),sess.setRemoteDescription($(iq).find(">jingle"),"offer"),$(iq).find('>jingle>muted[xmlns="http://jitsi.org/protocol/meet#startmuted"]').length&&(console.log("got a request to start muted"),sess.startmuted=!0),this.sessions[sess.sid]=sess,this.jid2session[sess.peerjid]=sess,$(document).trigger("callincoming.jingle",[sess.sid]);break;case"session-accept":sess.setRemoteDescription($(iq).find(">jingle"),"answer"),sess.accept(),$(document).trigger("callaccepted.jingle",[sess.sid]);break;case"session-terminate":console.log("terminating..."),sess.terminate(),this.terminate(sess.sid),$(iq).find(">jingle>reason").length?$(document).trigger("callterminated.jingle",[sess.sid,$(iq).find(">jingle>reason>:first")[0].tagName,$(iq).find(">jingle>reason>text").text()]):$(document).trigger("callterminated.jingle",[sess.sid]);break;case"transport-info":sess.addIceCandidate($(iq).find(">jingle>content"));break;case"session-info":var affected;$(iq).find('>jingle>ringing[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length?$(document).trigger("ringing.jingle",[sess.sid]):$(iq).find('>jingle>mute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length?(affected=$(iq).find('>jingle>mute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').attr("name"),$(document).trigger("mute.jingle",[sess.sid,affected])):$(iq).find('>jingle>unmute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length&&(affected=$(iq).find('>jingle>unmute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').attr("name"),$(document).trigger("unmute.jingle",[sess.sid,affected]));break;case"addsource":sess.addSource($(iq).find(">jingle>content"));break;case"removesource":sess.removeSource($(iq).find(">jingle>content"));break;default:console.warn("jingle action not implemented",action)}return!0},initiate:function(peerjid,myjid){var sess=new JingleSession(myjid||this.connection.jid,Math.random().toString(36).substr(2,12),this.connection);return this.localStream&&sess.localStreams.push(this.localStream),sess.media_constraints=this.media_constraints,sess.pc_constraints=this.pc_constraints,sess.ice_config=this.ice_config,sess.initiate(peerjid,!0),this.sessions[sess.sid]=sess,this.jid2session[sess.peerjid]=sess,sess.sendOffer(),sess},terminate:function(sid,reason,text){if(null===sid||void 0===sid)for(sid in this.sessions)"ended"!=this.sessions[sid].state&&(this.sessions[sid].sendTerminate(reason||!this.sessions[sid].active()?"cancel":null,text),this.sessions[sid].terminate()),delete this.jid2session[this.sessions[sid].peerjid],delete this.sessions[sid];else this.sessions.hasOwnProperty(sid)&&("ended"!=this.sessions[sid].state&&(this.sessions[sid].sendTerminate(reason||!this.sessions[sid].active()?"cancel":null,text),this.sessions[sid].terminate()),delete this.jid2session[this.sessions[sid].peerjid],delete this.sessions[sid])},terminateByJid:function(jid){if(this.jid2session.hasOwnProperty(jid)){var sess=this.jid2session[jid];sess&&(sess.terminate(),console.log("peer went away silently",jid),delete this.sessions[sess.sid],delete this.jid2session[jid],$(document).trigger("callterminated.jingle",[sess.sid,"gone"]))}},getStunAndTurnCredentials:function(){var self=this;this.connection.sendIQ($iq({type:"get",to:this.connection.domain}).c("services",{xmlns:"urn:xmpp:extdisco:1"}).c("service",{host:"turn."+this.connection.domain}),function(res){var iceservers=[];$(res).find(">services>service").each(function(idx,el){el=$(el);var dict={};switch(el.attr("type")){case"stun":dict.url="stun:"+el.attr("host"),el.attr("port")&&(dict.url+=":"+el.attr("port")),iceservers.push(dict);break;case"turn":dict.url="turn:",el.attr("username")&&(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)&&parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10)<28?dict.url+=el.attr("username")+"@":dict.username=el.attr("username")),dict.url+=el.attr("host"),el.attr("port")&&"3478"!=el.attr("port")&&(dict.url+=":"+el.attr("port")),el.attr("transport")&&"udp"!=el.attr("transport")&&(dict.url+="?transport="+el.attr("transport")),el.attr("password")&&(dict.credential=el.attr("password")),iceservers.push(dict)}}),self.ice_config.iceServers=iceservers},function(err){console.warn("getting turn credentials failed",err),console.warn("is mod_turncredentials or similar installed?")})}})}(jQuery);/*!
+function($){Strophe.addConnectionPlugin("jingle",{connection:null,sessions:{},jid2session:{},ice_config:{iceServers:[]},pc_constraints:{},media_constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},localStream:null,init:function(conn){this.connection=conn,this.connection.disco&&(this.connection.disco.addFeature("urn:xmpp:jingle:1"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:1"),this.connection.disco.addFeature("urn:xmpp:jingle:transports:ice-udp:1"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:audio"),this.connection.disco.addFeature("urn:xmpp:jingle:apps:rtp:video"),this.connection.disco.addFeature("urn:ietf:rfc:5761")),this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null)},onJingle:function(iq){var sid=$(iq).find("jingle").attr("sid"),action=$(iq).find("jingle").attr("action"),ack=$iq({type:"result",to:iq.getAttribute("from"),id:iq.getAttribute("id")}),sess=this.sessions[sid];if("session-initiate"!=action){if(null===sess)return ack.type="error",ack.c("error",{type:"cancel"}).c("item-not-found",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up().c("unknown-session",{xmlns:"urn:xmpp:jingle:errors:1"}),this.connection.send(ack),!0;if(Strophe.getBareJidFromJid(iq.getAttribute("from"))!=Strophe.getBareJidFromJid(sess.peerjid))return console.warn("jid mismatch for session id",sid,iq.getAttribute("from"),sess.peerjid),ack.type="error",ack.c("error",{type:"cancel"}).c("item-not-found",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up().c("unknown-session",{xmlns:"urn:xmpp:jingle:errors:1"}),this.connection.send(ack),!0}else if(void 0!==sess)return ack.type="error",ack.c("error",{type:"cancel"}).c("service-unavailable",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up(),console.warn("duplicate session id",sid),this.connection.send(ack),!0;switch(this.connection.send(ack),action){case"session-initiate":sess=new JingleSession($(iq).attr("to"),$(iq).find("jingle").attr("sid"),this.connection),this.localStream&&sess.localStreams.push(this.localStream),sess.media_constraints=this.media_constraints,sess.pc_constraints=this.pc_constraints,sess.ice_config=this.ice_config,sess.initiate($(iq).attr("from"),!1),sess.setRemoteDescription($(iq).find(">jingle"),"offer"),this.sessions[sess.sid]=sess,this.jid2session[sess.peerjid]=sess,$(document).trigger("callincoming.jingle",[sess.sid]);break;case"session-accept":sess.setRemoteDescription($(iq).find(">jingle"),"answer"),sess.accept(),$(document).trigger("callaccepted.jingle",[sess.sid]);break;case"session-terminate":sess.terminate(),this.terminate(sess.sid),$(iq).find(">jingle>reason").length?$(document).trigger("callterminated.jingle",[sess.sid,$(iq).find(">jingle>reason>:first")[0].tagName,$(iq).find(">jingle>reason>text").text()]):$(document).trigger("callterminated.jingle",[sess.sid]);break;case"transport-info":sess.addIceCandidate($(iq).find(">jingle>content"));break;case"session-info":var affected;$(iq).find('>jingle>ringing[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length?$(document).trigger("ringing.jingle",[sess.sid]):$(iq).find('>jingle>mute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length?(affected=$(iq).find('>jingle>mute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').attr("name"),$(document).trigger("mute.jingle",[sess.sid,affected])):$(iq).find('>jingle>unmute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').length&&(affected=$(iq).find('>jingle>unmute[xmlns="urn:xmpp:jingle:apps:rtp:info:1"]').attr("name"),$(document).trigger("unmute.jingle",[sess.sid,affected]));break;case"addsource":sess.addSource($(iq).find(">jingle>content"));break;case"removesource":sess.removeSource($(iq).find(">jingle>content"));break;default:console.warn("jingle action not implemented",action)}return!0},initiate:function(peerjid,myjid){var sess=new JingleSession(myjid||this.connection.jid,Math.random().toString(36).substr(2,12),this.connection);return this.localStream&&sess.localStreams.push(this.localStream),sess.media_constraints=this.media_constraints,sess.pc_constraints=this.pc_constraints,sess.ice_config=this.ice_config,sess.initiate(peerjid,!0),this.sessions[sess.sid]=sess,this.jid2session[sess.peerjid]=sess,sess.sendOffer(),sess},terminate:function(sid,reason,text){if(null===sid||void 0===sid)for(sid in this.sessions)"ended"!=this.sessions[sid].state&&(this.sessions[sid].sendTerminate(reason||!this.sessions[sid].active()?"cancel":null,text),this.sessions[sid].terminate()),delete this.jid2session[this.sessions[sid].peerjid],delete this.sessions[sid];else this.sessions.hasOwnProperty(sid)&&("ended"!=this.sessions[sid].state&&(this.sessions[sid].sendTerminate(reason||!this.sessions[sid].active()?"cancel":null,text),this.sessions[sid].terminate()),delete this.jid2session[this.sessions[sid].peerjid],delete this.sessions[sid])},terminateByJid:function(jid){if(this.jid2session.hasOwnProperty(jid)){var sess=this.jid2session[jid];sess&&(sess.terminate(),delete this.sessions[sess.sid],delete this.jid2session[jid],$(document).trigger("callterminated.jingle",[sess.sid,"gone"]))}},getStunAndTurnCredentials:function(){var self=this;this.connection.sendIQ($iq({type:"get",to:this.connection.domain}).c("services",{xmlns:"urn:xmpp:extdisco:1"}).c("service",{host:"turn."+this.connection.domain}),function(res){var iceservers=[];$(res).find(">services>service").each(function(idx,el){el=$(el);var dict={};switch(el.attr("type")){case"stun":dict.url="stun:"+el.attr("host"),el.attr("port")&&(dict.url+=":"+el.attr("port")),iceservers.push(dict);break;case"turn":dict.url="turn:",el.attr("username")&&(dict.username=el.attr("username")),dict.url+=el.attr("host"),el.attr("port")&&"3478"!=el.attr("port")&&(dict.url+=":"+el.attr("port")),el.attr("transport")&&"udp"!=el.attr("transport")&&(dict.url+="?transport="+el.attr("transport")),el.attr("password")&&(dict.credential=el.attr("password")),iceservers.push(dict)}}),self.ice_config.iceServers=iceservers},function(err){console.warn("getting turn credentials failed",err),console.warn("is mod_turncredentials or similar installed?")})}})}(jQuery);/*!
* Source: lib/strophe.jingle/strophe.jingle.session.js, license: MIT, url: https://github.com/ESTOS/strophe.jingle
*/
-var JingleSession;!function($){JingleSession=function(me,sid,connection){this.me=me,this.sid=sid,this.connection=connection,this.initiator=null,this.responder=null,this.isInitiator=null,this.peerjid=null,this.state=null,this.peerconnection=null,this.remoteStream=null,this.localSDP=null,this.remoteSDP=null,this.localStreams=[],this.relayedStreams=[],this.remoteStreams=[],this.startTime=null,this.stopTime=null,this.media_constraints=null,this.pc_constraints=null,this.ice_config={},this.drip_container=[],this.usetrickle=!0,this.usepranswer=!1,this.usedrip=!1,this.hadstuncandidate=!1,this.hadturncandidate=!1,this.lasticecandidate=!1,this.statsinterval=null,this.reason=null,this.addssrc=[],this.removessrc=[],this.pendingop=null,this.wait=!0,this.nickname=null,this.startmuted=!1,this.filter_candidates=null},JingleSession.prototype.initiate=function(peerjid,isInitiator){var self=this;if(null!==this.state)return void console.error("attempt to initiate on session "+this.sid+"in state "+this.state);this.isInitiator=isInitiator,this.state="pending",this.initiator=isInitiator?this.me:peerjid,this.responder=isInitiator?peerjid:this.me,this.peerjid=peerjid;try{this.peerconnection=new RTCPeerconnection(this.ice_config,this.pc_constraints)}catch(e){return console.error("Failed to create PeerConnection, exception: ",e.message),void console.error(e)}this.hadstuncandidate=!1,this.hadturncandidate=!1,this.lasticecandidate=!1,this.peerconnection.onicecandidate=function(event){self.sendIceCandidate(event.candidate)},this.peerconnection.onaddstream=function(event){self.remoteStream=event.stream,self.remoteStreams.push(event.stream),$(document).trigger("remotestreamadded.jingle",[event,self.sid])},this.peerconnection.onremovestream=function(event){self.remoteStream=null,$(document).trigger("remotestreamremoved.jingle",[event,self.sid])},this.peerconnection.onsignalingstatechange=function(){!self||!self.peerconnection},this.peerconnection.oniceconnectionstatechange=function(){if(self&&self.peerconnection){switch(self.peerconnection.iceConnectionState){case"connected":this.startTime=new Date;break;case"disconnected":this.stopTime=new Date}$(document).trigger("iceconnectionstatechange.jingle",[self.sid,self])}},this.localStreams.forEach(function(stream){self.peerconnection.addStream(stream)}),this.relayedStreams.forEach(function(stream){self.peerconnection.addStream(stream)})},JingleSession.prototype.accept=function(){var self=this;this.state="active";var pranswer=this.peerconnection.localDescription;if(pranswer&&"pranswer"==pranswer.type){if(console.log("going from pranswer to answer"),this.usetrickle)for(var lines=SDPUtil.find_lines(pranswer.sdp,"a=candidate:"),i=0;i<lines.length;i++)pranswer.sdp=pranswer.sdp.replace(lines[i]+"\r\n","");for(;SDPUtil.find_line(pranswer.sdp,"a=inactive");)pranswer.sdp=pranswer.sdp.replace("a=inactive","a=sendrecv");var prsdp=new SDP(pranswer.sdp),accept=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-accept",initiator:this.initiator,responder:this.responder,sid:this.sid});prsdp.toJingle(accept,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(accept,function(){var ack={};ack.source="answer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="answer",$(document).trigger("error.jingle",[self.sid,error])},1e4);for(var sdp=this.peerconnection.localDescription.sdp;SDPUtil.find_line(sdp,"a=inactive");)sdp=sdp.replace("a=inactive","a=sendrecv");this.peerconnection.setLocalDescription(new RTCSessionDescription({type:"answer",sdp:sdp}),function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)})}},JingleSession.prototype.terminate=function(reason){this.state="ended",this.reason=reason,this.peerconnection.close(),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null)},JingleSession.prototype.active=function(){return"active"==this.state},JingleSession.prototype.sendIceCandidate=function(candidate){var self=this;if(candidate&&!this.lasticecandidate){var ice=SDPUtil.iceparams(this.localSDP.media[candidate.sdpMLineIndex],this.localSDP.session),jcand=SDPUtil.candidateToJingle(candidate.candidate);if(!ice||!jcand)return void console.error("failed to get ice && jcand");if(ice.xmlns="urn:xmpp:jingle:transports:ice-udp:1","srflx"===jcand.type?this.hadstuncandidate=!0:"relay"===jcand.type&&(this.hadturncandidate=!0),(null===this.filter_candidates||jcand.type===this.filter_candidates)&&this.usetrickle){if(console.log("sendIceCandidate using trickle"),this.usedrip)return 0===this.drip_container.length&&window.setTimeout(function(){console.log("sending drip container"),0!==self.drip_container.length&&(self.sendIceCandidates(self.drip_container),self.drip_container=[])},20),void this.drip_container.push(event.candidate);console.log("sending single candidate"),self.sendIceCandidates([event.candidate])}}else{if(console.log("sendIceCandidate: last candidate..."),!this.usetrickle){console.log("should send full offer now...");var init=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"offer"==this.peerconnection.localDescription.type?"session-initiate":"session-accept",initiator:this.initiator,sid:this.sid});null!=this.nickname&&init.c("nick",{xmlns:"http://jabber.org/protocol/nick"}).t(this.nickname).up(),this.startmuted&&init.c("muted",{xmlns:"http://jitsi.org/protocol/meet#startmuted"}).up(),this.localSDP=new SDP(this.peerconnection.localDescription.sdp),this.localSDP.toJingle(init,this.initiator==this.me?"initiator":"responder"),console.log("try to send ack(offer)..."),this.connection.sendIQ(init,function(){console.log("Sent session initiate (ACK, offer)...");var ack={};ack.source="offer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){self.state="error",self.peerconnection.close();var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="offer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}this.lasticecandidate=!0,console.log("Have we encountered any srflx candidates? "+this.hadstuncandidate),console.log("Have we encountered any relay candidates? "+this.hadturncandidate),this.hadstuncandidate||this.hadturncandidate||"closed"==this.peerconnection.signalingState||(console.log("no candidates found!"),$(document).trigger("nostuncandidates.jingle",[this.sid]))}},JingleSession.prototype.sendIceCandidates=function(candidates){console.log("sendIceCandidates",candidates);for(var cand=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"transport-info",initiator:this.initiator,sid:this.sid}),mid=0;mid<this.localSDP.media.length;mid++){var cands=candidates.filter(function(el){return el.sdpMLineIndex==mid});if(cands.length>0){var ice=SDPUtil.iceparams(this.localSDP.media[mid],this.localSDP.session);ice.xmlns="urn:xmpp:jingle:transports:ice-udp:1",cand.c("content",{creator:this.initiator==this.me?"initiator":"responder",name:cands[0].sdpMid}).c("transport",ice);for(var i=0;i<cands.length;i++)cand.c("candidate",SDPUtil.candidateToJingle(cands[i].candidate)).up();if(SDPUtil.find_line(this.localSDP.media[mid],"a=fingerprint:",this.localSDP.session)){var tmp=SDPUtil.parse_fingerprint(SDPUtil.find_line(this.localSDP.media[mid],"a=fingerprint:",this.localSDP.session));tmp.required=!0,cand.c("fingerprint").t(tmp.fingerprint),delete tmp.fingerprint,cand.attrs(tmp),cand.up()}cand.up(),cand.up()}}console.log("try to send ack(transportinfo)..."),this.connection.sendIQ(cand,function(){var ack={};ack.source="transportinfo",console.log("Sent session initiate (ACK, transportinfo)..."),$(document).trigger("ack.jingle",[this.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="transportinfo",$(document).trigger("error.jingle",[this.sid,error])},1e4)},JingleSession.prototype.sendOffer=function(){var self=this;this.peerconnection.createOffer(function(sdp){self.createdOffer(sdp)},function(e){console.error("createOffer failed",e)},this.media_constraints)},JingleSession.prototype.createdOffer=function(sdp){var self=this;if(this.localSDP=new SDP(sdp.sdp),this.usetrickle){var init=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-initiate",initiator:this.initiator,sid:this.sid});null!=this.nickname&&init.c("nick",{xmlns:"http://jabber.org/protocol/nick"}).t(this.nickname).up(),this.startmuted&&init.c("muted",{xmlns:"http://jitsi.org/protocol/meet#startmuted"}).up(),this.localSDP.toJingle(init,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(init,function(){var ack={};ack.source="offer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){self.state="error",self.peerconnection.close();var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="offer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}sdp.sdp=this.localSDP.raw,this.peerconnection.setLocalDescription(sdp,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)});for(var cands=SDPUtil.find_lines(this.localSDP.raw,"a=candidate:"),i=0;i<cands.length;i++){var cand=SDPUtil.parse_icecandidate(cands[i]);"srflx"==cand.type?this.hadstuncandidate=!0:"relay"==cand.type&&(this.hadturncandidate=!0)}},JingleSession.prototype.setRemoteDescription=function(elem,desctype){if(this.remoteSDP=new SDP(""),this.remoteSDP.fromJingle(elem),null!==this.peerconnection.remoteDescription&&(console.log("setRemoteDescription when remote description is not null, should be pranswer",this.peerconnection.remoteDescription),"pranswer"==this.peerconnection.remoteDescription.type)){for(var pranswer=new SDP(this.peerconnection.remoteDescription.sdp),i=0;i<pranswer.media.length;i++){SDPUtil.find_line(this.remoteSDP.media[i],"a=ice-ufrag:",this.remoteSDP.session)||(SDPUtil.find_line(pranswer.media[i],"a=ice-ufrag:",pranswer.session)?this.remoteSDP.media[i]+=SDPUtil.find_line(pranswer.media[i],"a=ice-ufrag:",pranswer.session)+"\r\n":console.warn("no ice ufrag?"),SDPUtil.find_line(pranswer.media[i],"a=ice-pwd:",pranswer.session)?this.remoteSDP.media[i]+=SDPUtil.find_line(pranswer.media[i],"a=ice-pwd:",pranswer.session)+"\r\n":console.warn("no ice pwd?"));for(var lines=SDPUtil.find_lines(pranswer.media[i],"a=candidate:"),j=0;j<lines.length;j++)this.remoteSDP.media[i]+=lines[j]+"\r\n"}this.remoteSDP.raw=this.remoteSDP.session+this.remoteSDP.media.join("")}var remotedesc=new RTCSessionDescription({type:desctype,sdp:this.remoteSDP.raw});this.peerconnection.setRemoteDescription(remotedesc,function(){},function(e){console.error("setRemoteDescription error",e)})},JingleSession.prototype.addIceCandidate=function(elem){var self=this;if("closed"!=this.peerconnection.signalingState){if(!this.peerconnection.remoteDescription&&"have-local-offer"==this.peerconnection.signalingState){if(console.log("trickle ice candidate arriving before session accept..."),!this.remoteSDP){for(var cobbled="v=0\r\no=- 1923518516 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\n",i=0;i<this.localSDP.media.length;i++)cobbled+=SDPUtil.find_line(this.localSDP.media[i],"m=")+"\r\n",cobbled+=SDPUtil.find_lines(this.localSDP.media[i],"a=rtpmap:").join("\r\n")+"\r\n",SDPUtil.find_line(this.localSDP.media[i],"a=mid:")&&(cobbled+=SDPUtil.find_line(this.localSDP.media[i],"a=mid:")+"\r\n"),cobbled+="a=inactive\r\n";this.remoteSDP=new SDP(cobbled)}elem.each(function(){for(var i=0;i<self.remoteSDP.media.length;i++)if((SDPUtil.find_line(self.remoteSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.remoteSDP.media[i].indexOf("m="+$(this).attr("name")))&&!SDPUtil.find_line(self.remoteSDP.media[i],"a=ice-ufrag:")){var tmp=$(this).find("transport");self.remoteSDP.media[i]+="a=ice-ufrag:"+tmp.attr("ufrag")+"\r\n",self.remoteSDP.media[i]+="a=ice-pwd:"+tmp.attr("pwd")+"\r\n",tmp=$(this).find("transport>fingerprint"),tmp.length?self.remoteSDP.media[i]+="a=fingerprint:"+tmp.attr("hash")+" "+tmp.text()+"\r\n":(console.log("no dtls fingerprint (webrtc issue #1718?)"),self.remoteSDP.media[i]+="a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:BAADBAADBAADBAADBAADBAADBAADBAADBAADBAAD\r\n");break}}),this.remoteSDP.raw=this.remoteSDP.session+this.remoteSDP.media.join("");var iscomplete=this.remoteSDP.media.filter(function(mediapart){return SDPUtil.find_line(mediapart,"a=ice-ufrag:")}).length==this.remoteSDP.media.length;if(iscomplete){console.log("setting pranswer");try{this.peerconnection.setRemoteDescription(new RTCSessionDescription({type:"pranswer",sdp:this.remoteSDP.raw}),function(){},function(e){console.log("setRemoteDescription pranswer failed",e.toString())})}catch(e){console.error("setting pranswer failed",e)}}}elem.each(function(){var i,idx=-1;for(i=0;i<self.remoteSDP.media.length;i++)if(SDPUtil.find_line(self.remoteSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.remoteSDP.media[i].indexOf("m="+$(this).attr("name"))){idx=i;break}if(-1==idx)for(i=0;i<self.localSDP.media.length;i++)if(SDPUtil.find_line(self.localSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.localSDP.media[i].indexOf("m="+$(this).attr("name"))){idx=i;break}var name=$(this).attr("name");$(this).find("transport>candidate").each(function(){var line,candidate;line=SDPUtil.candidateFromJingle(this),candidate=new RTCIceCandidate({sdpMLineIndex:idx,sdpMid:name,candidate:line});try{self.peerconnection.addIceCandidate(candidate)}catch(e){console.error("addIceCandidate failed",e.toString(),line)}})})}},JingleSession.prototype.sendAnswer=function(provisional){var self=this;this.peerconnection.createAnswer(function(sdp){self.createdAnswer(sdp,provisional)},function(e){console.error("createAnswer failed",e)},this.media_constraints)},JingleSession.prototype.createdAnswer=function(sdp,provisional){var self=this;if(this.localSDP=new SDP(sdp.sdp),this.usepranswer=provisional===!0,this.startmuted&&(console.log("we got a request to start muted..."),this.connection.jingle.localStream.getAudioTracks().forEach(function(track){track.enabled=!1}),this.connection.jingle.localStream.getVideoTracks().forEach(function(track){track.enabled=!1}),this.localSDP.media[1]=this.localSDP.media[1].replace("a=sendrecv","a=recvonly"),SDPUtil.find_lines(this.localSDP.media[1],"a=ssrc:").forEach(function(line){self.localSDP.media[1]=self.localSDP.media[1].replace(line+"\r\n","")}),this.localSDP.raw=this.localSDP.session+this.localSDP.media.join("")),this.usetrickle)if(this.usepranswer){sdp.type="pranswer";for(var i=0;i<this.localSDP.media.length;i++)this.localSDP.media[i]=this.localSDP.media[i].replace("a=sendrecv\r\n","a=inactive\r\n");this.localSDP.raw=this.localSDP.session+this.localSDP.media.join("")}else{var accept=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-accept",initiator:this.initiator,responder:this.responder,sid:this.sid});this.localSDP.toJingle(accept,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(accept,function(){var ack={};ack.source="answer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="answer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}sdp.sdp=this.localSDP.raw,this.peerconnection.setLocalDescription(sdp,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)});for(var cands=SDPUtil.find_lines(this.localSDP.raw,"a=candidate:"),j=0;j<cands.length;j++){var cand=SDPUtil.parse_icecandidate(cands[j]);"srflx"==cand.type?this.hadstuncandidate=!0:"relay"==cand.type&&(this.hadturncandidate=!0)}},JingleSession.prototype.sendTerminate=function(reason,text){var self=this,term=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-terminate",initiator:this.initiator,sid:this.sid}).c("reason").c(reason||"success");text&&term.up().c("text").t(text),this.connection.sendIQ(term,function(){self.peerconnection.close(),self.peerconnection=null,self.terminate();var ack={};ack.source="terminate",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};$(document).trigger("ack.jingle",[self.sid,error])},1e4),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null)},JingleSession.prototype.addSource=function(elem){console.log("addssrc",(new Date).getTime()),console.log("ice",this.peerconnection.iceConnectionState);var sdp=new SDP(this.peerconnection.remoteDescription.sdp),self=this;$(elem).each(function(idx,content){var name=$(content).attr("name"),lines="";tmp=$(content).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=$(this).attr("ssrc");$(this).find(">parameter").each(function(){lines+="a=ssrc:"+ssrc+" "+$(this).attr("name"),$(this).attr("value")&&$(this).attr("value").length&&(lines+=":"+$(this).attr("value")),lines+="\r\n"})}),sdp.media.forEach(function(media,idx){SDPUtil.find_line(media,"a=mid:"+name)&&(sdp.media[idx]+=lines,self.addssrc[idx]||(self.addssrc[idx]=""),self.addssrc[idx]+=lines)}),sdp.raw=sdp.session+sdp.media.join("")}),this.modifySources()},JingleSession.prototype.removeSource=function(elem){console.log("removessrc",(new Date).getTime()),console.log("ice",this.peerconnection.iceConnectionState);var sdp=new SDP(this.peerconnection.remoteDescription.sdp),self=this;$(elem).each(function(idx,content){var name=$(content).attr("name"),lines="";tmp=$(content).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=$(this).attr("ssrc");$(this).find(">parameter").each(function(){lines+="a=ssrc:"+ssrc+" "+$(this).attr("name"),$(this).attr("value")&&$(this).attr("value").length&&(lines+=":"+$(this).attr("value")),lines+="\r\n"})}),sdp.media.forEach(function(media,idx){SDPUtil.find_line(media,"a=mid:"+name)&&(sdp.media[idx]+=lines,self.addssrc[idx]||(self.removessrc[idx]=""),self.removessrc[idx]+=lines)}),sdp.raw=sdp.session+sdp.media.join("")}),this.modifySources()},JingleSession.prototype.modifySources=function(){var self=this;if("closed"!=this.peerconnection.signalingState&&(this.addssrc.length||this.removessrc.length||null!==this.pendingop)){if("stable"!=this.peerconnection.signalingState||"connected"!=this.peerconnection.iceConnectionState)return console.warn("modifySources not yet",this.peerconnection.signalingState,this.peerconnection.iceConnectionState),this.wait=!0,void window.setTimeout(function(){self.modifySources()},250);if(this.wait)return window.setTimeout(function(){self.modifySources()},2500),void(this.wait=!1);var sdp=new SDP(this.peerconnection.remoteDescription.sdp);this.addssrc.forEach(function(lines,idx){sdp.media[idx]+=lines}),this.addssrc=[],this.removessrc.forEach(function(lines,idx){lines=lines.split("\r\n"),lines.pop(),lines.forEach(function(line){sdp.media[idx]=sdp.media[idx].replace(line+"\r\n","")})}),this.removessrc=[],sdp.raw=sdp.session+sdp.media.join(""),this.peerconnection.setRemoteDescription(new RTCSessionDescription({type:"offer",sdp:sdp.raw}),function(){self.peerconnection.createAnswer(function(modifiedAnswer){if(null!==self.pendingop){var sdp=new SDP(modifiedAnswer.sdp);if(sdp.media.length>1){switch(self.pendingop){case"mute":sdp.media[1]=sdp.media[1].replace("a=sendrecv","a=recvonly");break;case"unmute":sdp.media[1]=sdp.media[1].replace("a=recvonly","a=sendrecv")}sdp.raw=sdp.session+sdp.media.join(""),modifiedAnswer.sdp=sdp.raw}self.pendingop=null}self.peerconnection.setLocalDescription(modifiedAnswer,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(){console.log("modified setLocalDescription failed")})},function(){console.log("modified answer failed")})},function(){console.log("modify failed")})}},JingleSession.prototype.hardMuteVideo=function(muted){this.pendingop=muted?"mute":"unmute",this.modifySources(),this.connection.jingle.localStream.getVideoTracks().forEach(function(track){track.enabled=!muted})},JingleSession.prototype.sendMute=function(muted,content){var info=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-info",initiator:this.initiator,sid:this.sid});info.c(muted?"mute":"unmute",{xmlns:"urn:xmpp:jingle:apps:rtp:info:1"}),info.attrs({creator:this.me==this.initiator?"creator":"responder"}),content&&info.attrs({name:content}),this.connection.send(info)},JingleSession.prototype.sendRinging=function(){var info=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-info",initiator:this.initiator,sid:this.sid});info.c("ringing",{xmlns:"urn:xmpp:jingle:apps:rtp:info:1"}),this.connection.send(info)},JingleSession.prototype.getStats=function(interval){var self=this,recv={audio:0,video:0},lost={audio:0,video:0},lastrecv={audio:0,video:0},lastlost={audio:0,video:0},loss={audio:0,video:0},delta={audio:0,video:0};return this.statsinterval=window.setInterval(function(){self&&self.peerconnection&&self.peerconnection.getStats&&self.peerconnection.getStats(function(stats){for(var results=stats.result(),i=0;i<results.length;++i)if("ssrc"==results[i].type){var packetsrecv=results[i].stat("packetsReceived"),packetslost=results[i].stat("packetsLost");packetsrecv&&packetslost&&(packetsrecv=parseInt(packetsrecv,10),packetslost=parseInt(packetslost,10),results[i].stat("googFrameRateReceived")?(lastlost.video=lost.video,lastrecv.video=recv.video,recv.video=packetsrecv,lost.video=packetslost):(lastlost.audio=lost.audio,lastrecv.audio=recv.audio,recv.audio=packetsrecv,lost.audio=packetslost))}delta.audio=recv.audio-lastrecv.audio,delta.video=recv.video-lastrecv.video,loss.audio=delta.audio>0?Math.ceil(100*(lost.audio-lastlost.audio)/delta.audio):0,loss.video=delta.video>0?Math.ceil(100*(lost.video-lastlost.video)/delta.video):0,$(document).trigger("packetloss.jingle",[self.sid,loss])})},interval||3e3),this.statsinterval}}(jQuery);/*!
+var JingleSession;!function($){JingleSession=function(me,sid,connection){this.me=me,this.sid=sid,this.connection=connection,this.initiator=null,this.responder=null,this.isInitiator=null,this.peerjid=null,this.state=null,this.peerconnection=null,this.remoteStream=null,this.localSDP=null,this.remoteSDP=null,this.localStreams=[],this.relayedStreams=[],this.remoteStreams=[],this.startTime=null,this.stopTime=null,this.media_constraints=null,this.pc_constraints=null,this.ice_config={},this.drip_container=[],this.usetrickle=!0,this.usepranswer=!1,this.usedrip=!1,this.hadstuncandidate=!1,this.hadturncandidate=!1,this.lasticecandidate=!1,this.statsinterval=null,this.reason=null,this.addssrc=[],this.removessrc=[],this.pendingop=null,this.wait=!0,this.nickname=null,this.startmuted=!1,this.filter_candidates=null},JingleSession.prototype.initiate=function(peerjid,isInitiator){var self=this;if(null!==this.state)return void console.error("attempt to initiate on session "+this.sid+"in state "+this.state);this.isInitiator=isInitiator,this.state="pending",this.initiator=isInitiator?this.me:peerjid,this.responder=isInitiator?peerjid:this.me,this.peerjid=peerjid;try{this.peerconnection=new RTCPeerconnection(this.ice_config,this.pc_constraints)}catch(e){return console.error("Failed to create PeerConnection, exception: ",e.message),void console.error(e)}this.hadstuncandidate=!1,this.hadturncandidate=!1,this.lasticecandidate=!1,this.peerconnection.onicecandidate=function(event){self.sendIceCandidate(event.candidate)},this.peerconnection.onaddstream=function(event){self.remoteStream=event.stream,self.remoteStreams.push(event.stream),$(document).trigger("remotestreamadded.jingle",[event,self.sid])},this.peerconnection.onremovestream=function(event){self.remoteStream=null,$(document).trigger("remotestreamremoved.jingle",[event,self.sid])},this.peerconnection.onsignalingstatechange=function(){!self||!self.peerconnection},this.peerconnection.oniceconnectionstatechange=function(){if(self&&self.peerconnection){switch(self.peerconnection.iceConnectionState){case"connected":this.startTime=new Date;break;case"disconnected":this.stopTime=new Date}$(document).trigger("iceconnectionstatechange.jingle",[self.sid,self])}},this.localStreams.forEach(function(stream){self.peerconnection.addStream(stream)}),this.relayedStreams.forEach(function(stream){self.peerconnection.addStream(stream)})},JingleSession.prototype.accept=function(){var self=this;this.state="active";var pranswer=this.peerconnection.localDescription;if(pranswer&&"pranswer"==pranswer.type){if(console.log("going from pranswer to answer"),this.usetrickle)for(var lines=SDPUtil.find_lines(pranswer.sdp,"a=candidate:"),i=0;i<lines.length;i++)pranswer.sdp=pranswer.sdp.replace(lines[i]+"\r\n","");for(;SDPUtil.find_line(pranswer.sdp,"a=inactive");)pranswer.sdp=pranswer.sdp.replace("a=inactive","a=sendrecv");var prsdp=new SDP(pranswer.sdp),accept=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-accept",initiator:this.initiator,responder:this.responder,sid:this.sid});prsdp.toJingle(accept,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(accept,function(){var ack={};ack.source="answer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="answer",$(document).trigger("error.jingle",[self.sid,error])},1e4);for(var sdp=this.peerconnection.localDescription.sdp;SDPUtil.find_line(sdp,"a=inactive");)sdp=sdp.replace("a=inactive","a=sendrecv");this.peerconnection.setLocalDescription(new RTCSessionDescription({type:"answer",sdp:sdp}),function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)})}},JingleSession.prototype.terminate=function(reason){this.state="ended",this.reason=reason,this.peerconnection.close(),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null)},JingleSession.prototype.active=function(){return"active"==this.state},JingleSession.prototype.sendIceCandidate=function(candidate){var self=this;if(candidate&&!this.lasticecandidate){var ice=SDPUtil.iceparams(this.localSDP.media[candidate.sdpMLineIndex],this.localSDP.session),jcand=SDPUtil.candidateToJingle(candidate.candidate);if(!ice||!jcand)return void console.error("failed to get ice && jcand");if(ice.xmlns="urn:xmpp:jingle:transports:ice-udp:1","srflx"===jcand.type?this.hadstuncandidate=!0:"relay"===jcand.type&&(this.hadturncandidate=!0),(null===this.filter_candidates||jcand.type===this.filter_candidates)&&this.usetrickle){if(console.log("sendIceCandidate using trickle"),this.usedrip)return 0===this.drip_container.length&&window.setTimeout(function(){console.log("sending drip container"),0!==self.drip_container.length&&(self.sendIceCandidates(self.drip_container),self.drip_container=[])},20),void this.drip_container.push(candidate);console.log("sending single candidate"),self.sendIceCandidates([candidate])}}else{if(console.log("sendIceCandidate: last candidate..."),!this.usetrickle){console.log("should send full offer now...");var init=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"offer"==this.peerconnection.localDescription.type?"session-initiate":"session-accept",initiator:this.initiator,sid:this.sid});null!==this.nickname&&init.c("nick",{xmlns:"http://jabber.org/protocol/nick"}).t(this.nickname).up(),this.startmuted&&init.c("muted",{xmlns:"http://jitsi.org/protocol/meet#startmuted"}).up(),this.localSDP=new SDP(this.peerconnection.localDescription.sdp),this.localSDP.toJingle(init,this.initiator==this.me?"initiator":"responder"),console.log("try to send ack(offer)..."),this.connection.sendIQ(init,function(){console.log("Sent session initiate (ACK, offer)...");var ack={};ack.source="offer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){self.state="error",self.peerconnection.close();var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="offer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}this.lasticecandidate=!0,console.log("Have we encountered any srflx candidates? "+this.hadstuncandidate),console.log("Have we encountered any relay candidates? "+this.hadturncandidate),this.hadstuncandidate||this.hadturncandidate||"closed"==this.peerconnection.signalingState||(console.log("no candidates found!"),$(document).trigger("nostuncandidates.jingle",[this.sid]))}},JingleSession.prototype.sendIceCandidates=function(candidates){console.log("sendIceCandidates",candidates);for(var cand=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"transport-info",initiator:this.initiator,sid:this.sid}),mid=0;mid<this.localSDP.media.length;mid++){var cands=candidates.filter(function(el){return el.sdpMLineIndex==mid}),mline=SDPUtil.parse_mline(this.localSDP.media[mid].split("\r\n")[0]);if(cands.length>0){var ice=SDPUtil.iceparams(this.localSDP.media[mid],this.localSDP.session);ice.xmlns="urn:xmpp:jingle:transports:ice-udp:1",cand.c("content",{creator:this.initiator==this.me?"initiator":"responder",name:cands[0].sdpMid?cands[0].sdpMid:mline.media}).c("transport",ice);for(var i=0;i<cands.length;i++)cand.c("candidate",SDPUtil.candidateToJingle(cands[i].candidate)).up();if(SDPUtil.find_line(this.localSDP.media[mid],"a=fingerprint:",this.localSDP.session)){var tmp=SDPUtil.parse_fingerprint(SDPUtil.find_line(this.localSDP.media[mid],"a=fingerprint:",this.localSDP.session));tmp.required=!0,cand.c("fingerprint").t(tmp.fingerprint),delete tmp.fingerprint,cand.attrs(tmp),cand.up()}cand.up(),cand.up()}}console.log("try to send ack(transportinfo)..."),this.connection.sendIQ(cand,function(){var ack={};ack.source="transportinfo",console.log("Sent session initiate (ACK, transportinfo)..."),$(document).trigger("ack.jingle",[this.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="transportinfo",$(document).trigger("error.jingle",[this.sid,error])},1e4)},JingleSession.prototype.sendOffer=function(){var self=this;this.peerconnection.createOffer(function(sdp){self.createdOffer(sdp)},function(e){console.error("createOffer failed",e)},this.media_constraints)},JingleSession.prototype.createdOffer=function(sdp){var self=this;if(this.localSDP=new SDP(sdp.sdp),this.usetrickle){var init=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-initiate",initiator:this.initiator,sid:this.sid});null!==this.nickname&&init.c("nick",{xmlns:"http://jabber.org/protocol/nick"}).t(this.nickname).up(),this.startmuted&&init.c("muted",{xmlns:"http://jitsi.org/protocol/meet#startmuted"}).up(),this.localSDP.toJingle(init,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(init,function(){var ack={};ack.source="offer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){self.state="error",self.peerconnection.close();var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="offer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}sdp.sdp=this.localSDP.raw,this.peerconnection.setLocalDescription(sdp,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)});for(var cands=SDPUtil.find_lines(this.localSDP.raw,"a=candidate:"),i=0;i<cands.length;i++){var cand=SDPUtil.parse_icecandidate(cands[i]);"srflx"==cand.type?this.hadstuncandidate=!0:"relay"==cand.type&&(this.hadturncandidate=!0)}},JingleSession.prototype.setRemoteDescription=function(elem,desctype){if(this.remoteSDP=new SDP(""),this.remoteSDP.fromJingle(elem),null!==this.peerconnection.remoteDescription&&(console.log("setRemoteDescription when remote description is not null, should be pranswer",this.peerconnection.remoteDescription),"pranswer"==this.peerconnection.remoteDescription.type)){for(var pranswer=new SDP(this.peerconnection.remoteDescription.sdp),i=0;i<pranswer.media.length;i++){SDPUtil.find_line(this.remoteSDP.media[i],"a=ice-ufrag:",this.remoteSDP.session)||(SDPUtil.find_line(pranswer.media[i],"a=ice-ufrag:",pranswer.session)?this.remoteSDP.media[i]+=SDPUtil.find_line(pranswer.media[i],"a=ice-ufrag:",pranswer.session)+"\r\n":console.warn("no ice ufrag?"),SDPUtil.find_line(pranswer.media[i],"a=ice-pwd:",pranswer.session)?this.remoteSDP.media[i]+=SDPUtil.find_line(pranswer.media[i],"a=ice-pwd:",pranswer.session)+"\r\n":console.warn("no ice pwd?"));for(var lines=SDPUtil.find_lines(pranswer.media[i],"a=candidate:"),j=0;j<lines.length;j++)this.remoteSDP.media[i]+=lines[j]+"\r\n"}this.remoteSDP.raw=this.remoteSDP.session+this.remoteSDP.media.join("")}var remotedesc=new RTCSessionDescription({type:desctype,sdp:this.remoteSDP.raw});this.peerconnection.setRemoteDescription(remotedesc,function(){},function(e){console.error("setRemoteDescription error",e)})},JingleSession.prototype.addIceCandidate=function(elem){var self=this;if("closed"!=this.peerconnection.signalingState){if(!this.peerconnection.remoteDescription&&"have-local-offer"==this.peerconnection.signalingState){if(console.log("trickle ice candidate arriving before session accept..."),!this.remoteSDP){for(var cobbled="v=0\r\no=- 1923518516 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\n",i=0;i<this.localSDP.media.length;i++)cobbled+=SDPUtil.find_line(this.localSDP.media[i],"m=")+"\r\n",cobbled+=SDPUtil.find_lines(this.localSDP.media[i],"a=rtpmap:").join("\r\n")+"\r\n",SDPUtil.find_line(this.localSDP.media[i],"a=mid:")&&(cobbled+=SDPUtil.find_line(this.localSDP.media[i],"a=mid:")+"\r\n"),cobbled+="a=inactive\r\n";this.remoteSDP=new SDP(cobbled)}elem.each(function(){for(var i=0;i<self.remoteSDP.media.length;i++)if((SDPUtil.find_line(self.remoteSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.remoteSDP.media[i].indexOf("m="+$(this).attr("name")))&&!SDPUtil.find_line(self.remoteSDP.media[i],"a=ice-ufrag:")){var tmp=$(this).find("transport");self.remoteSDP.media[i]+="a=ice-ufrag:"+tmp.attr("ufrag")+"\r\n",self.remoteSDP.media[i]+="a=ice-pwd:"+tmp.attr("pwd")+"\r\n",tmp=$(this).find("transport>fingerprint"),tmp.length?self.remoteSDP.media[i]+="a=fingerprint:"+tmp.attr("hash")+" "+tmp.text()+"\r\n":(console.log("no dtls fingerprint (webrtc issue #1718?)"),self.remoteSDP.media[i]+="a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:BAADBAADBAADBAADBAADBAADBAADBAADBAADBAAD\r\n");break}}),this.remoteSDP.raw=this.remoteSDP.session+this.remoteSDP.media.join("");var iscomplete=this.remoteSDP.media.filter(function(mediapart){return SDPUtil.find_line(mediapart,"a=ice-ufrag:")}).length==this.remoteSDP.media.length;if(iscomplete){console.log("setting pranswer");try{this.peerconnection.setRemoteDescription(new RTCSessionDescription({type:"pranswer",sdp:this.remoteSDP.raw}),function(){},function(e){console.log("setRemoteDescription pranswer failed",e.toString())})}catch(e){console.error("setting pranswer failed",e)}}}elem.each(function(){var i,idx=-1;for(i=0;i<self.remoteSDP.media.length;i++)if(SDPUtil.find_line(self.remoteSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.remoteSDP.media[i].indexOf("m="+$(this).attr("name"))){idx=i;break}if(-1==idx)for(i=0;i<self.localSDP.media.length;i++)if(SDPUtil.find_line(self.localSDP.media[i],"a=mid:"+$(this).attr("name"))||0===self.localSDP.media[i].indexOf("m="+$(this).attr("name"))){idx=i;break}var name=$(this).attr("name");$(this).find("transport>candidate").each(function(){var line,candidate;line=SDPUtil.candidateFromJingle(this),candidate=new RTCIceCandidate({sdpMLineIndex:idx,sdpMid:name,candidate:line});try{self.peerconnection.addIceCandidate(candidate)}catch(e){console.error("addIceCandidate failed",e.toString(),line)}})})}},JingleSession.prototype.sendAnswer=function(provisional){var self=this;this.peerconnection.createAnswer(function(sdp){self.createdAnswer(sdp,provisional)},function(e){console.error("createAnswer failed",e)},this.media_constraints)},JingleSession.prototype.createdAnswer=function(sdp,provisional){var self=this;if(this.localSDP=new SDP(sdp.sdp),this.usepranswer=provisional===!0,this.startmuted&&(console.log("we got a request to start muted..."),this.connection.jingle.localStream.getAudioTracks().forEach(function(track){track.enabled=!1}),this.connection.jingle.localStream.getVideoTracks().forEach(function(track){track.enabled=!1}),this.localSDP.media[1]=this.localSDP.media[1].replace("a=sendrecv","a=recvonly"),SDPUtil.find_lines(this.localSDP.media[1],"a=ssrc:").forEach(function(line){self.localSDP.media[1]=self.localSDP.media[1].replace(line+"\r\n","")}),this.localSDP.raw=this.localSDP.session+this.localSDP.media.join("")),this.usetrickle)if(this.usepranswer){sdp.type="pranswer";for(var i=0;i<this.localSDP.media.length;i++)this.localSDP.media[i]=this.localSDP.media[i].replace("a=sendrecv\r\n","a=inactive\r\n");this.localSDP.raw=this.localSDP.session+this.localSDP.media.join("")}else{var accept=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-accept",initiator:this.initiator,responder:this.responder,sid:this.sid});this.localSDP.toJingle(accept,this.initiator==this.me?"initiator":"responder"),this.connection.sendIQ(accept,function(){var ack={};ack.source="answer",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};error.source="answer",$(document).trigger("error.jingle",[self.sid,error])},1e4)}sdp.sdp=this.localSDP.raw,this.peerconnection.setLocalDescription(sdp,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(e){console.error("setLocalDescription failed",e)});for(var cands=SDPUtil.find_lines(this.localSDP.raw,"a=candidate:"),j=0;j<cands.length;j++){var cand=SDPUtil.parse_icecandidate(cands[j]);"srflx"==cand.type?this.hadstuncandidate=!0:"relay"==cand.type&&(this.hadturncandidate=!0)}},JingleSession.prototype.sendTerminate=function(reason,text){var self=this,term=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-terminate",initiator:this.initiator,sid:this.sid}).c("reason").c(reason||"success");text&&term.up().c("text").t(text),this.connection.sendIQ(term,function(){self.peerconnection.close(),self.peerconnection=null,self.terminate();var ack={};ack.source="terminate",$(document).trigger("ack.jingle",[self.sid,ack])},function(stanza){var error=$(stanza).find("error").length?{code:$(stanza).find("error").attr("code"),reason:$(stanza).find("error :first")[0].tagName}:{};$(document).trigger("ack.jingle",[self.sid,error])},1e4),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null)},JingleSession.prototype.addSource=function(elem){console.log("addssrc",(new Date).getTime()),console.log("ice",this.peerconnection.iceConnectionState);var sdp=new SDP(this.peerconnection.remoteDescription.sdp),self=this;$(elem).each(function(idx,content){var name=$(content).attr("name"),lines="";tmp=$(content).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=$(this).attr("ssrc");$(this).find(">parameter").each(function(){lines+="a=ssrc:"+ssrc+" "+$(this).attr("name"),$(this).attr("value")&&$(this).attr("value").length&&(lines+=":"+$(this).attr("value")),lines+="\r\n"})}),sdp.media.forEach(function(media,idx){SDPUtil.find_line(media,"a=mid:"+name)&&(sdp.media[idx]+=lines,self.addssrc[idx]||(self.addssrc[idx]=""),self.addssrc[idx]+=lines)}),sdp.raw=sdp.session+sdp.media.join("")}),this.modifySources()},JingleSession.prototype.removeSource=function(elem){console.log("removessrc",(new Date).getTime()),console.log("ice",this.peerconnection.iceConnectionState);var sdp=new SDP(this.peerconnection.remoteDescription.sdp),self=this;$(elem).each(function(idx,content){var name=$(content).attr("name"),lines="";tmp=$(content).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=$(this).attr("ssrc");$(this).find(">parameter").each(function(){lines+="a=ssrc:"+ssrc+" "+$(this).attr("name"),$(this).attr("value")&&$(this).attr("value").length&&(lines+=":"+$(this).attr("value")),lines+="\r\n"})}),sdp.media.forEach(function(media,idx){SDPUtil.find_line(media,"a=mid:"+name)&&(sdp.media[idx]+=lines,self.addssrc[idx]||(self.removessrc[idx]=""),self.removessrc[idx]+=lines)}),sdp.raw=sdp.session+sdp.media.join("")}),this.modifySources()},JingleSession.prototype.modifySources=function(){var self=this;if("closed"!=this.peerconnection.signalingState&&(this.addssrc.length||this.removessrc.length||null!==this.pendingop)){if("stable"!=this.peerconnection.signalingState||"connected"!=this.peerconnection.iceConnectionState)return console.warn("modifySources not yet",this.peerconnection.signalingState,this.peerconnection.iceConnectionState),this.wait=!0,void window.setTimeout(function(){self.modifySources()},250);if(this.wait)return window.setTimeout(function(){self.modifySources()},2500),void(this.wait=!1);var sdp=new SDP(this.peerconnection.remoteDescription.sdp);this.addssrc.forEach(function(lines,idx){sdp.media[idx]+=lines}),this.addssrc=[],this.removessrc.forEach(function(lines,idx){lines=lines.split("\r\n"),lines.pop(),lines.forEach(function(line){sdp.media[idx]=sdp.media[idx].replace(line+"\r\n","")})}),this.removessrc=[],sdp.raw=sdp.session+sdp.media.join(""),this.peerconnection.setRemoteDescription(new RTCSessionDescription({type:"offer",sdp:sdp.raw}),function(){self.peerconnection.createAnswer(function(modifiedAnswer){if(null!==self.pendingop){var sdp=new SDP(modifiedAnswer.sdp);if(sdp.media.length>1){switch(self.pendingop){case"mute":sdp.media[1]=sdp.media[1].replace("a=sendrecv","a=recvonly");break;case"unmute":sdp.media[1]=sdp.media[1].replace("a=recvonly","a=sendrecv")}sdp.raw=sdp.session+sdp.media.join(""),modifiedAnswer.sdp=sdp.raw}self.pendingop=null}self.peerconnection.setLocalDescription(modifiedAnswer,function(){$(document).trigger("setLocalDescription.jingle",[self.sid])},function(){console.log("modified setLocalDescription failed")})},function(){console.log("modified answer failed")})},function(){console.log("modify failed")})}},JingleSession.prototype.hardMuteVideo=function(muted){this.pendingop=muted?"mute":"unmute",this.modifySources(),this.connection.jingle.localStream.getVideoTracks().forEach(function(track){track.enabled=!muted})},JingleSession.prototype.sendMute=function(muted,content){var info=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-info",initiator:this.initiator,sid:this.sid});info.c(muted?"mute":"unmute",{xmlns:"urn:xmpp:jingle:apps:rtp:info:1"}),info.attrs({creator:this.me==this.initiator?"creator":"responder"}),content&&info.attrs({name:content}),this.connection.send(info)},JingleSession.prototype.sendRinging=function(){var info=$iq({to:this.peerjid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-info",initiator:this.initiator,sid:this.sid});info.c("ringing",{xmlns:"urn:xmpp:jingle:apps:rtp:info:1"}),this.connection.send(info)},JingleSession.prototype.getStats=function(interval){var self=this,recv={audio:0,video:0},lost={audio:0,video:0},lastrecv={audio:0,video:0},lastlost={audio:0,video:0},loss={audio:0,video:0},delta={audio:0,video:0};return this.statsinterval=window.setInterval(function(){self&&self.peerconnection&&self.peerconnection.getStats&&self.peerconnection.getStats(function(stats){for(var results=stats.result(),i=0;i<results.length;++i)if("ssrc"==results[i].type){var packetsrecv=results[i].stat("packetsReceived"),packetslost=results[i].stat("packetsLost");packetsrecv&&packetslost&&(packetsrecv=parseInt(packetsrecv,10),packetslost=parseInt(packetslost,10),results[i].stat("googFrameRateReceived")?(lastlost.video=lost.video,lastrecv.video=recv.video,recv.video=packetsrecv,lost.video=packetslost):(lastlost.audio=lost.audio,lastrecv.audio=recv.audio,recv.audio=packetsrecv,lost.audio=packetslost))}delta.audio=recv.audio-lastrecv.audio,delta.video=recv.video-lastrecv.video,loss.audio=delta.audio>0?Math.ceil(100*(lost.audio-lastlost.audio)/delta.audio):0,loss.video=delta.video>0?Math.ceil(100*(lost.video-lastlost.video)/delta.video):0,$(document).trigger("packetloss.jingle",[self.sid,loss])})},interval||3e3),this.statsinterval}}(jQuery);/*!
* Source: lib/strophe.jingle/strophe.jingle.sdp.js, license: MIT, url: https://github.com/ESTOS/strophe.jingle
*/
-var SDP;!function($){SDP=function(sdp){this.media=sdp.split("\r\nm=");for(var i=1;i<this.media.length;i++)this.media[i]="m="+this.media[i],i!=this.media.length-1&&(this.media[i]+="\r\n");this.session=this.media.shift()+"\r\n",this.raw=this.session+this.media.join("")},SDP.prototype.mangle=function(){var i,j,mline,lines,rtpmap,newdesc;for(i=0;i<this.media.length;i++)if(lines=this.media[i].split("\r\n"),lines.pop(),mline=SDPUtil.parse_mline(lines.shift()),"audio"==mline.media){for(newdesc="",mline.fmt.length=0,j=0;j<lines.length;j++)if("a=rtpmap:"==lines[j].substr(0,9)){if(rtpmap=SDPUtil.parse_rtpmap(lines[j]),"CN"==rtpmap.name||"ISAC"==rtpmap.name)continue;mline.fmt.push(rtpmap.id),newdesc+=lines[j]+"\r\n"}else newdesc+=lines[j]+"\r\n";this.media[i]=SDPUtil.build_mline(mline)+"\r\n",this.media[i]+=newdesc}this.raw=this.session+this.media.join("")},SDP.prototype.removeSessionLines=function(prefix){var self=this,lines=SDPUtil.find_lines(this.session,prefix);return lines.forEach(function(line){self.session=self.session.replace(line+"\r\n","")}),this.raw=this.session+this.media.join(""),lines},SDP.prototype.removeMediaLines=function(mediaindex,prefix){var self=this,lines=SDPUtil.find_lines(this.media[mediaindex],prefix);return lines.forEach(function(line){self.media[mediaindex]=self.media[mediaindex].replace(line+"\r\n","")}),this.raw=this.session+this.media.join(""),lines},SDP.prototype.toJingle=function(elem,thecreator){var i,j,k,mline,ssrc,rtpmap,tmp,lines;if(SDPUtil.find_line(this.session,"a=group:"))for(lines=SDPUtil.find_lines(this.session,"a=group:"),i=0;i<lines.length;i++){tmp=lines[i].split(" ");var semantics=tmp.shift().substr(8);for(elem.c("group",{xmlns:"urn:xmpp:jingle:apps:grouping:0",semantics:semantics}),j=0;j<tmp.length;j++)elem.c("content",{name:tmp[j]}).up();elem.up()}var bundle=[];for(SDPUtil.find_line(this.session,"a=group:BUNDLE")&&(bundle=SDPUtil.find_line(this.session,"a=group:BUNDLE ").split(" "),bundle.shift()),i=0;i<this.media.length;i++)if(mline=SDPUtil.parse_mline(this.media[i].split("\r\n")[0]),"audio"==mline.media||"video"==mline.media){if(ssrc=SDPUtil.find_line(this.media[i],"a=ssrc:")?SDPUtil.find_line(this.media[i],"a=ssrc:").substring(7).split(" ")[0]:!1,elem.c("content",{creator:thecreator,name:mline.media}),SDPUtil.find_line(this.media[i],"a=mid:")){var mid=SDPUtil.parse_mid(SDPUtil.find_line(this.media[i],"a=mid:"));elem.attrs({name:mid}),-1!=bundle.indexOf(mid)&&(elem.c("bundle",{xmlns:"http://estos.de/ns/bundle"}).up(),bundle.splice(bundle.indexOf(mid),1))}if(SDPUtil.find_line(this.media[i],"a=rtpmap:").length){for(elem.c("description",{xmlns:"urn:xmpp:jingle:apps:rtp:1",media:mline.media}),ssrc&&elem.attrs({ssrc:ssrc}),j=0;j<mline.fmt.length;j++){if(rtpmap=SDPUtil.find_line(this.media[i],"a=rtpmap:"+mline.fmt[j]),elem.c("payload-type",SDPUtil.parse_rtpmap(rtpmap)),SDPUtil.find_line(this.media[i],"a=fmtp:"+mline.fmt[j]))for(tmp=SDPUtil.parse_fmtp(SDPUtil.find_line(this.media[i],"a=fmtp:"+mline.fmt[j])),k=0;k<tmp.length;k++)elem.c("parameter",tmp[k]).up();this.RtcpFbToJingle(i,elem,mline.fmt[j]),elem.up()}if(SDPUtil.find_line(this.media[i],"a=crypto:",this.session)){elem.c("encryption",{required:1});var crypto=SDPUtil.find_lines(this.media[i],"a=crypto:",this.session);crypto.forEach(function(line){elem.c("crypto",SDPUtil.parse_crypto(line)).up()}),elem.up()}if(ssrc){elem.c("source",{ssrc:ssrc,xmlns:"urn:xmpp:jingle:apps:rtp:ssma:0"});var ssrclines=SDPUtil.find_lines(this.media[i],"a=ssrc:");ssrclines.forEach(function(line){idx=line.indexOf(" ");var linessrc=line.substr(0,idx).substr(7);linessrc!=ssrc&&(elem.up(),ssrc=linessrc,elem.c("source",{ssrc:ssrc,xmlns:"urn:xmpp:jingle:apps:rtp:ssma:0"}));var kv=line.substr(idx+1);elem.c("parameter"),-1==kv.indexOf(":")?elem.attrs({name:kv}):(elem.attrs({name:kv.split(":",2)[0]}),elem.attrs({value:kv.split(":",2)[1]})),elem.up()}),elem.up(),tmp=SDPUtil.parse_ssrc(this.media[i]),tmp.xmlns="http://estos.de/ns/ssrc",tmp.ssrc=ssrc,elem.c("ssrc",tmp).up()}if(SDPUtil.find_line(this.media[i],"a=rtcp-mux")&&elem.c("rtcp-mux").up(),this.RtcpFbToJingle(i,elem,"*"),SDPUtil.find_line(this.media[i],"a=extmap:"))for(lines=SDPUtil.find_lines(this.media[i],"a=extmap:"),j=0;j<lines.length;j++){if(tmp=SDPUtil.parse_extmap(lines[j]),elem.c("rtp-hdrext",{xmlns:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",uri:tmp.uri,id:tmp.value}),tmp.hasOwnProperty("direction"))switch(tmp.direction){case"sendonly":elem.attrs({senders:"responder"});break;case"recvonly":elem.attrs({senders:"initiator"});break;case"sendrecv":elem.attrs({senders:"both"});break;case"inactive":elem.attrs({senders:"none"})}elem.up()}elem.up()}this.TransportToJingle(i,elem),SDPUtil.find_line(this.media[i],"a=sendrecv",this.session)?elem.attrs({senders:"both"}):SDPUtil.find_line(this.media[i],"a=sendonly",this.session)?elem.attrs({senders:"initiator"}):SDPUtil.find_line(this.media[i],"a=recvonly",this.session)?elem.attrs({senders:"responder"}):SDPUtil.find_line(this.media[i],"a=inactive",this.session)&&elem.attrs({senders:"none"}),"0"==mline.port&&elem.attrs({senders:"rejected"}),elem.up()}return elem.up(),elem},SDP.prototype.TransportToJingle=function(mediaindex,elem){var tmp,self=this;elem.c("transport");var fingerprints=SDPUtil.find_lines(this.media[mediaindex],"a=fingerprint:",this.session);if(fingerprints.forEach(function(line){tmp=SDPUtil.parse_fingerprint(line),tmp.xmlns="urn:xmpp:tmp:jingle:apps:dtls:0",elem.c("fingerprint").t(tmp.fingerprint),delete tmp.fingerprint,line=SDPUtil.find_line(self.media[mediaindex],"a=setup:",self.session),line&&(tmp.setup=line.substr(8)),elem.attrs(tmp),elem.up()}),tmp=SDPUtil.iceparams(this.media[mediaindex],this.session),tmp&&(tmp.xmlns="urn:xmpp:jingle:transports:ice-udp:1",elem.attrs(tmp),SDPUtil.find_line(this.media[mediaindex],"a=candidate:",this.session))){var lines=SDPUtil.find_lines(this.media[mediaindex],"a=candidate:",this.session);lines.forEach(function(line){elem.c("candidate",SDPUtil.candidateToJingle(line)).up()})}elem.up()},SDP.prototype.RtcpFbToJingle=function(mediaindex,elem,payloadtype){var lines=SDPUtil.find_lines(this.media[mediaindex],"a=rtcp-fb:"+payloadtype);lines.forEach(function(line){var tmp=SDPUtil.parse_rtcpfb(line);"trr-int"==tmp.type?(elem.c("rtcp-fb-trr-int",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",value:tmp.params[0]}),elem.up()):(elem.c("rtcp-fb",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",type:tmp.type}),tmp.params.length>0&&elem.attrs({subtype:tmp.params[0]}),elem.up())})},SDP.prototype.RtcpFbFromJingle=function(elem,payloadtype){var media="",tmp=elem.find('>rtcp-fb-trr-int[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]');return tmp.length&&(media+="a=rtcp-fb:* trr-int ",media+=tmp.attr("value")?tmp.attr("value"):"0",media+="\r\n"),tmp=elem.find('>rtcp-fb[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]'),tmp.each(function(){media+="a=rtcp-fb:"+payloadtype+" "+$(this).attr("type"),$(this).attr("subtype")&&(media+=" "+$(this).attr("subtype")),media+="\r\n"}),media},SDP.prototype.fromJingle=function(jingle){var self=this;if(this.raw="v=0\r\no=- 1923518516 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\n",$(jingle).find('>group[xmlns="urn:xmpp:jingle:apps:grouping:0"]').length)$(jingle).find('>group[xmlns="urn:xmpp:jingle:apps:grouping:0"]').each(function(idx,group){var contents=$(group).find(">content").map(function(idx,content){return content.getAttribute("name")}).get();contents.length>0&&(self.raw+="a=group:"+(group.getAttribute("semantics")||group.getAttribute("type"))+" "+contents.join(" ")+"\r\n")});else if($(jingle).find('>group[xmlns="urn:ietf:rfc:5888"]').length)$(jingle).find('>group[xmlns="urn:ietf:rfc:5888"]').each(function(idx,group){var contents=$(group).find(">content").map(function(idx,content){return content.getAttribute("name")}).get();null!==group.getAttribute("type")&&contents.length>0&&(self.raw+="a=group:"+group.getAttribute("type")+" "+contents.join(" ")+"\r\n")});else{var bundle=$(jingle).find(">content").filter(function(idx,content){return $(content).find(">bundle").length>0}).map(function(idx,content){return content.getAttribute("name")}).get();bundle.length&&(this.raw+="a=group:BUNDLE "+bundle.join(" ")+"\r\n")}this.session=this.raw,jingle.find(">content").each(function(){var m=self.jingle2media($(this));self.media.push(m)}),this.raw=this.session+this.media.join("")},SDP.prototype.jingle2media=function(content){var tmp,media="",desc=content.find("description"),ssrc=desc.attr("ssrc"),self=this;switch(tmp={media:desc.attr("media")},tmp.port="1","rejected"==content.attr("senders")&&(tmp.port="0"),tmp.proto=content.find(">transport>fingerprint").length||desc.find("encryption").length?"RTP/SAVPF":"RTP/AVPF",tmp.fmt=desc.find("payload-type").map(function(){return this.getAttribute("id")}).get(),media+=SDPUtil.build_mline(tmp)+"\r\n",media+="c=IN IP4 0.0.0.0\r\n",media+="a=rtcp:1 IN IP4 0.0.0.0\r\n",tmp=content.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]'),tmp.length&&(tmp.attr("ufrag")&&(media+=SDPUtil.build_iceufrag(tmp.attr("ufrag"))+"\r\n"),tmp.attr("pwd")&&(media+=SDPUtil.build_icepwd(tmp.attr("pwd"))+"\r\n"),tmp.find(">fingerprint").each(function(){media+="a=fingerprint:"+this.getAttribute("hash"),media+=" "+$(this).text(),media+="\r\n",this.getAttribute("setup")&&(media+="a=setup:"+this.getAttribute("setup")+"\r\n")})),content.attr("senders")){case"initiator":media+="a=sendonly\r\n";break;case"responder":media+="a=recvonly\r\n";break;case"none":media+="a=inactive\r\n";break;case"both":media+="a=sendrecv\r\n"}return media+="a=mid:"+content.attr("name")+"\r\n",desc.find("rtcp-mux").length&&(media+="a=rtcp-mux\r\n"),desc.find("encryption").length&&desc.find("encryption>crypto").each(function(){media+="a=crypto:"+this.getAttribute("tag"),media+=" "+this.getAttribute("crypto-suite"),media+=" "+this.getAttribute("key-params"),this.getAttribute("session-params")&&(media+=" "+this.getAttribute("session-params")),media+="\r\n"}),desc.find("payload-type").each(function(){media+=SDPUtil.build_rtpmap(this)+"\r\n",$(this).find(">parameter").length&&(media+="a=fmtp:"+this.getAttribute("id")+" ",media+=$(this).find("parameter").map(function(){return(this.getAttribute("name")?this.getAttribute("name")+"=":"")+this.getAttribute("value")}).get().join(";"),media+="\r\n"),media+=self.RtcpFbFromJingle($(this),this.getAttribute("id"))}),media+=self.RtcpFbFromJingle(desc,"*"),tmp=desc.find('>rtp-hdrext[xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0"]'),tmp.each(function(){media+="a=extmap:"+this.getAttribute("id")+" "+this.getAttribute("uri")+"\r\n"}),content.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]>candidate').each(function(){media+=SDPUtil.candidateFromJingle(this)}),tmp=content.find('description>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=this.getAttribute("ssrc");$(this).find(">parameter").each(function(){media+="a=ssrc:"+ssrc+" "+this.getAttribute("name"),this.getAttribute("value")&&this.getAttribute("value").length&&(media+=":"+this.getAttribute("value")),media+="\r\n"})}),0===tmp.length&&(tmp=content.find('description>ssrc[xmlns="http://estos.de/ns/ssrc"]'),tmp.length&&(media+="a=ssrc:"+ssrc+" cname:"+tmp.attr("cname")+"\r\n",media+="a=ssrc:"+ssrc+" msid:"+tmp.attr("msid")+"\r\n",media+="a=ssrc:"+ssrc+" mslabel:"+tmp.attr("mslabel")+"\r\n",media+="a=ssrc:"+ssrc+" label:"+tmp.attr("label")+"\r\n")),media},SDPUtil={iceparams:function(mediadesc,sessiondesc){var data=null;return SDPUtil.find_line(mediadesc,"a=ice-ufrag:",sessiondesc)&&SDPUtil.find_line(mediadesc,"a=ice-pwd:",sessiondesc)&&(data={ufrag:SDPUtil.parse_iceufrag(SDPUtil.find_line(mediadesc,"a=ice-ufrag:",sessiondesc)),pwd:SDPUtil.parse_icepwd(SDPUtil.find_line(mediadesc,"a=ice-pwd:",sessiondesc))}),data},parse_iceufrag:function(line){return line.substring(12)},build_iceufrag:function(frag){return"a=ice-ufrag:"+frag},parse_icepwd:function(line){return line.substring(10)},build_icepwd:function(pwd){return"a=ice-pwd:"+pwd},parse_mid:function(line){return line.substring(6)},parse_mline:function(line){var parts=line.substring(2).split(" "),data={};return data.media=parts.shift(),data.port=parts.shift(),data.proto=parts.shift(),""===parts[parts.length-1]&&parts.pop(),data.fmt=parts,data},build_mline:function(mline){return"m="+mline.media+" "+mline.port+" "+mline.proto+" "+mline.fmt.join(" ")},parse_rtpmap:function(line){var parts=line.substring(9).split(" "),data={};return data.id=parts.shift(),parts=parts[0].split("/"),data.name=parts.shift(),data.clockrate=parts.shift(),data.channels=parts.length?parts.shift():"1",data},build_rtpmap:function(el){var line="a=rtpmap:"+el.getAttribute("id")+" "+el.getAttribute("name")+"/"+el.getAttribute("clockrate");return el.getAttribute("channels")&&"1"!=el.getAttribute("channels")&&(line+="/"+el.getAttribute("channels")),line},parse_crypto:function(line){var parts=line.substring(9).split(" "),data={};return data.tag=parts.shift(),data["crypto-suite"]=parts.shift(),data["key-params"]=parts.shift(),parts.length&&(data["session-params"]=parts.join(" ")),data},parse_fingerprint:function(line){var parts=line.substring(14).split(" "),data={};return data.hash=parts.shift(),data.fingerprint=parts.shift(),data},parse_fmtp:function(line){var i,key,value,parts=line.split(" "),data=[];for(parts.shift(),parts=parts.join(" ").split(";"),i=0;i<parts.length;i++){for(key=parts[i].split("=")[0];key.length&&" "==key[0];)key=key.substring(1);value=parts[i].split("=")[1],key&&value?data.push({name:key,value:value}):key&&data.push({name:"",value:key})}return data},parse_icecandidate:function(line){var candidate={},elems=line.split(" ");candidate.foundation=elems[0].substring(12),candidate.component=elems[1],candidate.protocol=elems[2].toLowerCase(),candidate.priority=elems[3],candidate.ip=elems[4],candidate.port=elems[5],candidate.type=elems[7],candidate.generation=0;for(var i=8;i<elems.length;i+=2)switch(elems[i]){case"raddr":candidate["rel-addr"]=elems[i+1];break;case"rport":candidate["rel-port"]=elems[i+1];break;case"generation":candidate.generation=elems[i+1];break;case"tcptype":candidate.tcptype=elems[i+1];break;default:console.log('parse_icecandidate not translating "'+elems[i]+'" = "'+elems[i+1]+'"')}return candidate.network="1",candidate.id=Math.random().toString(36).substr(2,10),candidate},build_icecandidate:function(cand){var line=["a=candidate:"+cand.foundation,cand.component,cand.protocol,cand.priority,cand.ip,cand.port,"typ",cand.type].join(" ");switch(line+=" ",cand.type){case"srflx":case"prflx":case"relay":cand.hasOwnAttribute("rel-addr")&&cand.hasOwnAttribute("rel-port")&&(line+="raddr",line+=" ",line+=cand["rel-addr"],line+=" ",line+="rport",line+=" ",line+=cand["rel-port"],line+=" ")}return cand.hasOwnAttribute("tcptype")&&(line+="tcptype",line+=" ",line+=cand.tcptype,line+=" "),line+="generation",line+=" ",line+=cand.hasOwnAttribute("generation")?cand.generation:"0"},parse_ssrc:function(desc){for(var lines=desc.split("\r\n"),data={},i=0;i<lines.length;i++)if("a=ssrc:"==lines[i].substring(0,7)){var idx=lines[i].indexOf(" ");data[lines[i].substr(idx+1).split(":",2)[0]]=lines[i].substr(idx+1).split(":",2)[1]}return data},parse_rtcpfb:function(line){var parts=line.substr(10).split(" "),data={};return data.pt=parts.shift(),data.type=parts.shift(),data.params=parts,data},parse_extmap:function(line){var parts=line.substr(9).split(" "),data={};return data.value=parts.shift(),-1!=data.value.indexOf("/")?(data.direction=data.value.substr(data.value.indexOf("/")+1),data.value=data.value.substr(0,data.value.indexOf("/"))):data.direction="both",data.uri=parts.shift(),data.params=parts,data},find_line:function(haystack,needle,sessionpart){for(var lines=haystack.split("\r\n"),i=0;i<lines.length;i++)if(lines[i].substring(0,needle.length)==needle)return lines[i];if(!sessionpart)return!1;lines=sessionpart.split("\r\n");for(var j=0;j<lines.length;j++)if(lines[j].substring(0,needle.length)==needle)return lines[j];return!1},find_lines:function(haystack,needle,sessionpart){for(var lines=haystack.split("\r\n"),needles=[],i=0;i<lines.length;i++)lines[i].substring(0,needle.length)==needle&&needles.push(lines[i]);if(needles.length||!sessionpart)return needles;lines=sessionpart.split("\r\n");for(var j=0;j<lines.length;j++)lines[j].substring(0,needle.length)==needle&&needles.push(lines[j]);return needles},candidateToJingle:function(line){if(0===line.indexOf("candidate:"))line="a="+line;else if("a=candidate:"!=line.substring(0,12))return console.log("parseCandidate called with a line that is not a candidate line"),console.log(line),null;"\r\n"==line.substring(line.length-2)&&(line=line.substring(0,line.length-2));var i,candidate={},elems=line.split(" ");if("typ"!=elems[6])return console.log("did not find typ in the right place"),console.log(line),null;for(candidate.foundation=elems[0].substring(12),candidate.component=elems[1],candidate.protocol=elems[2].toLowerCase(),candidate.priority=elems[3],candidate.ip=elems[4],candidate.port=elems[5],candidate.type=elems[7],candidate.generation="0",i=8;i<elems.length;i+=2)switch(elems[i]){case"raddr":candidate["rel-addr"]=elems[i+1];break;case"rport":candidate["rel-port"]=elems[i+1];break;case"generation":candidate.generation=elems[i+1];break;case"tcptype":candidate.tcptype=elems[i+1];break;default:console.log('not translating "'+elems[i]+'" = "'+elems[i+1]+'"')}return candidate.network="1",candidate.id=Math.random().toString(36).substr(2,10),candidate},candidateFromJingle:function(cand){var line="a=candidate:";switch(line+=cand.getAttribute("foundation"),line+=" ",line+=cand.getAttribute("component"),line+=" ",line+=cand.getAttribute("protocol"),line+=" ",line+=cand.getAttribute("priority"),line+=" ",line+=cand.getAttribute("ip"),line+=" ",line+=cand.getAttribute("port"),line+=" ",line+="typ",line+=" "+cand.getAttribute("type"),line+=" ",cand.getAttribute("type")){case"srflx":case"prflx":case"relay":cand.getAttribute("rel-addr")&&cand.getAttribute("rel-port")&&(line+="raddr",line+=" ",line+=cand.getAttribute("rel-addr"),line+=" ",line+="rport",line+=" ",line+=cand.getAttribute("rel-port"),line+=" ")}return line+="generation",line+=" ",line+=cand.getAttribute("generation")||"0",line+"\r\n"}}}(jQuery);/*!
+var SDP;!function($){SDP=function(sdp){this.media=sdp.split("\r\nm=");for(var i=1;i<this.media.length;i++)this.media[i]="m="+this.media[i],i!=this.media.length-1&&(this.media[i]+="\r\n");this.session=this.media.shift()+"\r\n",this.raw=this.session+this.media.join("")},SDP.prototype.mangle=function(){var i,j,mline,lines,rtpmap,newdesc;for(i=0;i<this.media.length;i++)if(lines=this.media[i].split("\r\n"),lines.pop(),mline=SDPUtil.parse_mline(lines.shift()),"audio"==mline.media){for(newdesc="",mline.fmt.length=0,j=0;j<lines.length;j++)if("a=rtpmap:"==lines[j].substr(0,9)){if(rtpmap=SDPUtil.parse_rtpmap(lines[j]),"CN"==rtpmap.name||"ISAC"==rtpmap.name)continue;mline.fmt.push(rtpmap.id),newdesc+=lines[j]+"\r\n"}else newdesc+=lines[j]+"\r\n";this.media[i]=SDPUtil.build_mline(mline)+"\r\n",this.media[i]+=newdesc}this.raw=this.session+this.media.join("")},SDP.prototype.removeSessionLines=function(prefix){var self=this,lines=SDPUtil.find_lines(this.session,prefix);return lines.forEach(function(line){self.session=self.session.replace(line+"\r\n","")}),this.raw=this.session+this.media.join(""),lines},SDP.prototype.removeMediaLines=function(mediaindex,prefix){var self=this,lines=SDPUtil.find_lines(this.media[mediaindex],prefix);return lines.forEach(function(line){self.media[mediaindex]=self.media[mediaindex].replace(line+"\r\n","")}),this.raw=this.session+this.media.join(""),lines},SDP.prototype.toJingle=function(elem,thecreator){var i,j,k,mline,ssrc,rtpmap,tmp,lines;if(SDPUtil.find_line(this.session,"a=group:"))for(lines=SDPUtil.find_lines(this.session,"a=group:"),i=0;i<lines.length;i++){tmp=lines[i].split(" ");var semantics=tmp.shift().substr(8);for(elem.c("group",{xmlns:"urn:xmpp:jingle:apps:grouping:0",semantics:semantics}),j=0;j<tmp.length;j++)elem.c("content",{name:tmp[j]}).up();elem.up()}var bundle=[];for(SDPUtil.find_line(this.session,"a=group:BUNDLE")&&(bundle=SDPUtil.find_line(this.session,"a=group:BUNDLE ").split(" "),bundle.shift()),i=0;i<this.media.length;i++)if(mline=SDPUtil.parse_mline(this.media[i].split("\r\n")[0]),"audio"==mline.media||"video"==mline.media){if(ssrc=SDPUtil.find_line(this.media[i],"a=ssrc:")?SDPUtil.find_line(this.media[i],"a=ssrc:").substring(7).split(" ")[0]:!1,elem.c("content",{creator:thecreator,name:mline.media}),SDPUtil.find_line(this.media[i],"a=mid:")){var mid=SDPUtil.parse_mid(SDPUtil.find_line(this.media[i],"a=mid:"));elem.attrs({name:mid})}if(SDPUtil.find_line(this.media[i],"a=rtpmap:").length){for(elem.c("description",{xmlns:"urn:xmpp:jingle:apps:rtp:1",media:mline.media}),ssrc&&elem.attrs({ssrc:ssrc}),j=0;j<mline.fmt.length;j++){if(rtpmap=SDPUtil.find_line(this.media[i],"a=rtpmap:"+mline.fmt[j]),elem.c("payload-type",SDPUtil.parse_rtpmap(rtpmap)),SDPUtil.find_line(this.media[i],"a=fmtp:"+mline.fmt[j]))for(tmp=SDPUtil.parse_fmtp(SDPUtil.find_line(this.media[i],"a=fmtp:"+mline.fmt[j])),k=0;k<tmp.length;k++)elem.c("parameter",tmp[k]).up();this.RtcpFbToJingle(i,elem,mline.fmt[j]),elem.up()}if(SDPUtil.find_line(this.media[i],"a=crypto:",this.session)){elem.c("encryption",{required:1});var crypto=SDPUtil.find_lines(this.media[i],"a=crypto:",this.session);crypto.forEach(function(line){elem.c("crypto",SDPUtil.parse_crypto(line)).up()}),elem.up()}if(ssrc){elem.c("source",{ssrc:ssrc,xmlns:"urn:xmpp:jingle:apps:rtp:ssma:0"});var ssrclines=SDPUtil.find_lines(this.media[i],"a=ssrc:");ssrclines.forEach(function(line){idx=line.indexOf(" ");var linessrc=line.substr(0,idx).substr(7);linessrc!=ssrc&&(elem.up(),ssrc=linessrc,elem.c("source",{ssrc:ssrc,xmlns:"urn:xmpp:jingle:apps:rtp:ssma:0"}));var kv=line.substr(idx+1);elem.c("parameter"),-1==kv.indexOf(":")?elem.attrs({name:kv}):(elem.attrs({name:kv.split(":",2)[0]}),elem.attrs({value:kv.split(":",2)[1]})),elem.up()}),elem.up()}if(SDPUtil.find_line(this.media[i],"a=rtcp-mux")&&elem.c("rtcp-mux").up(),this.RtcpFbToJingle(i,elem,"*"),SDPUtil.find_line(this.media[i],"a=extmap:"))for(lines=SDPUtil.find_lines(this.media[i],"a=extmap:"),j=0;j<lines.length;j++){if(tmp=SDPUtil.parse_extmap(lines[j]),elem.c("rtp-hdrext",{xmlns:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",uri:tmp.uri,id:tmp.value}),tmp.hasOwnProperty("direction"))switch(tmp.direction){case"sendonly":elem.attrs({senders:"responder"});break;case"recvonly":elem.attrs({senders:"initiator"});break;case"sendrecv":elem.attrs({senders:"both"});break;case"inactive":elem.attrs({senders:"none"})}elem.up()}elem.up()}this.TransportToJingle(i,elem),SDPUtil.find_line(this.media[i],"a=sendrecv",this.session)?elem.attrs({senders:"both"}):SDPUtil.find_line(this.media[i],"a=sendonly",this.session)?elem.attrs({senders:"initiator"}):SDPUtil.find_line(this.media[i],"a=recvonly",this.session)?elem.attrs({senders:"responder"}):SDPUtil.find_line(this.media[i],"a=inactive",this.session)&&elem.attrs({senders:"none"}),"0"==mline.port&&elem.attrs({senders:"rejected"}),elem.up()}return elem.up(),elem},SDP.prototype.TransportToJingle=function(mediaindex,elem){var tmp,self=this;elem.c("transport");var fingerprints=SDPUtil.find_lines(this.media[mediaindex],"a=fingerprint:",this.session);if(fingerprints.forEach(function(line){tmp=SDPUtil.parse_fingerprint(line),tmp.xmlns="urn:xmpp:tmp:jingle:apps:dtls:0",elem.c("fingerprint").t(tmp.fingerprint),delete tmp.fingerprint,line=SDPUtil.find_line(self.media[mediaindex],"a=setup:",self.session),line&&(tmp.setup=line.substr(8)),elem.attrs(tmp),elem.up()}),tmp=SDPUtil.iceparams(this.media[mediaindex],this.session),tmp&&(tmp.xmlns="urn:xmpp:jingle:transports:ice-udp:1",elem.attrs(tmp),SDPUtil.find_line(this.media[mediaindex],"a=candidate:",this.session))){var lines=SDPUtil.find_lines(this.media[mediaindex],"a=candidate:",this.session);lines.forEach(function(line){elem.c("candidate",SDPUtil.candidateToJingle(line)).up()})}elem.up()},SDP.prototype.RtcpFbToJingle=function(mediaindex,elem,payloadtype){var lines=SDPUtil.find_lines(this.media[mediaindex],"a=rtcp-fb:"+payloadtype);lines.forEach(function(line){var tmp=SDPUtil.parse_rtcpfb(line);"trr-int"==tmp.type?(elem.c("rtcp-fb-trr-int",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",value:tmp.params[0]}),elem.up()):(elem.c("rtcp-fb",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",type:tmp.type}),tmp.params.length>0&&elem.attrs({subtype:tmp.params[0]}),elem.up())})},SDP.prototype.RtcpFbFromJingle=function(elem,payloadtype){var media="",tmp=elem.find('>rtcp-fb-trr-int[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]');return tmp.length&&(media+="a=rtcp-fb:* trr-int ",media+=tmp.attr("value")?tmp.attr("value"):"0",media+="\r\n"),tmp=elem.find('>rtcp-fb[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]'),tmp.each(function(){media+="a=rtcp-fb:"+payloadtype+" "+$(this).attr("type"),$(this).attr("subtype")&&(media+=" "+$(this).attr("subtype")),media+="\r\n"}),media},SDP.prototype.fromJingle=function(jingle){var self=this;if(this.raw="v=0\r\no=- 1923518516 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\n",$(jingle).find('>group[xmlns="urn:xmpp:jingle:apps:grouping:0"]').length)$(jingle).find('>group[xmlns="urn:xmpp:jingle:apps:grouping:0"]').each(function(idx,group){var contents=$(group).find(">content").map(function(idx,content){return content.getAttribute("name")}).get();contents.length>0&&(self.raw+="a=group:"+(group.getAttribute("semantics")||group.getAttribute("type"))+" "+contents.join(" ")+"\r\n")});else if($(jingle).find('>group[xmlns="urn:ietf:rfc:5888"]').length)$(jingle).find('>group[xmlns="urn:ietf:rfc:5888"]').each(function(idx,group){var contents=$(group).find(">content").map(function(idx,content){return content.getAttribute("name")}).get();null!==group.getAttribute("type")&&contents.length>0&&(self.raw+="a=group:"+group.getAttribute("type")+" "+contents.join(" ")+"\r\n")});else{var bundle=$(jingle).find(">content").filter(function(idx,content){return $(content).find(">bundle").length>0}).map(function(idx,content){return content.getAttribute("name")}).get();bundle.length&&(this.raw+="a=group:BUNDLE "+bundle.join(" ")+"\r\n")}this.session=this.raw,jingle.find(">content").each(function(){var m=self.jingle2media($(this));self.media.push(m)}),this.raw=this.session+this.media.join("")},SDP.prototype.jingle2media=function(content){var tmp,media="",desc=content.find("description"),self=(desc.attr("ssrc"),this);switch(tmp={media:desc.attr("media")},tmp.port="1","rejected"==content.attr("senders")&&(tmp.port="0"),tmp.proto=content.find(">transport>fingerprint").length||desc.find("encryption").length?"RTP/SAVPF":"RTP/AVPF",tmp.fmt=desc.find("payload-type").map(function(){return this.getAttribute("id")}).get(),media+=SDPUtil.build_mline(tmp)+"\r\n",media+="c=IN IP4 0.0.0.0\r\n",media+="a=rtcp:1 IN IP4 0.0.0.0\r\n",tmp=content.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]'),tmp.length&&(tmp.attr("ufrag")&&(media+=SDPUtil.build_iceufrag(tmp.attr("ufrag"))+"\r\n"),tmp.attr("pwd")&&(media+=SDPUtil.build_icepwd(tmp.attr("pwd"))+"\r\n"),tmp.find(">fingerprint").each(function(){media+="a=fingerprint:"+this.getAttribute("hash"),media+=" "+$(this).text(),media+="\r\n",this.getAttribute("setup")&&(media+="a=setup:"+this.getAttribute("setup")+"\r\n")})),content.attr("senders")){case"initiator":media+="a=sendonly\r\n";break;case"responder":media+="a=recvonly\r\n";break;case"none":media+="a=inactive\r\n";break;case"both":media+="a=sendrecv\r\n"}return media+="a=mid:"+content.attr("name")+"\r\n",desc.find("rtcp-mux").length&&(media+="a=rtcp-mux\r\n"),desc.find("encryption").length&&desc.find("encryption>crypto").each(function(){media+="a=crypto:"+this.getAttribute("tag"),media+=" "+this.getAttribute("crypto-suite"),media+=" "+this.getAttribute("key-params"),this.getAttribute("session-params")&&(media+=" "+this.getAttribute("session-params")),media+="\r\n"}),desc.find("payload-type").each(function(){media+=SDPUtil.build_rtpmap(this)+"\r\n",$(this).find(">parameter").length&&(media+="a=fmtp:"+this.getAttribute("id")+" ",media+=$(this).find("parameter").map(function(){return(this.getAttribute("name")?this.getAttribute("name")+"=":"")+this.getAttribute("value")}).get().join(";"),media+="\r\n"),media+=self.RtcpFbFromJingle($(this),this.getAttribute("id"))}),media+=self.RtcpFbFromJingle(desc,"*"),tmp=desc.find('>rtp-hdrext[xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0"]'),tmp.each(function(){media+="a=extmap:"+this.getAttribute("id")+" "+this.getAttribute("uri")+"\r\n"}),content.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]>candidate').each(function(){media+=SDPUtil.candidateFromJingle(this)}),tmp=content.find('description>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]'),tmp.each(function(){var ssrc=this.getAttribute("ssrc");$(this).find(">parameter").each(function(){media+="a=ssrc:"+ssrc+" "+this.getAttribute("name"),this.getAttribute("value")&&this.getAttribute("value").length&&(media+=":"+this.getAttribute("value")),media+="\r\n"})}),media},SDPUtil={iceparams:function(mediadesc,sessiondesc){var data=null;return SDPUtil.find_line(mediadesc,"a=ice-ufrag:",sessiondesc)&&SDPUtil.find_line(mediadesc,"a=ice-pwd:",sessiondesc)&&(data={ufrag:SDPUtil.parse_iceufrag(SDPUtil.find_line(mediadesc,"a=ice-ufrag:",sessiondesc)),pwd:SDPUtil.parse_icepwd(SDPUtil.find_line(mediadesc,"a=ice-pwd:",sessiondesc))}),data},parse_iceufrag:function(line){return line.substring(12)},build_iceufrag:function(frag){return"a=ice-ufrag:"+frag},parse_icepwd:function(line){return line.substring(10)},build_icepwd:function(pwd){return"a=ice-pwd:"+pwd},parse_mid:function(line){return line.substring(6)},parse_mline:function(line){var parts=line.substring(2).split(" "),data={};return data.media=parts.shift(),data.port=parts.shift(),data.proto=parts.shift(),""===parts[parts.length-1]&&parts.pop(),data.fmt=parts,data},build_mline:function(mline){return"m="+mline.media+" "+mline.port+" "+mline.proto+" "+mline.fmt.join(" ")},parse_rtpmap:function(line){var parts=line.substring(9).split(" "),data={};return data.id=parts.shift(),parts=parts[0].split("/"),data.name=parts.shift(),data.clockrate=parts.shift(),data.channels=parts.length?parts.shift():"1",data},build_rtpmap:function(el){var line="a=rtpmap:"+el.getAttribute("id")+" "+el.getAttribute("name")+"/"+el.getAttribute("clockrate");return el.getAttribute("channels")&&"1"!=el.getAttribute("channels")&&(line+="/"+el.getAttribute("channels")),line},parse_crypto:function(line){var parts=line.substring(9).split(" "),data={};return data.tag=parts.shift(),data["crypto-suite"]=parts.shift(),data["key-params"]=parts.shift(),parts.length&&(data["session-params"]=parts.join(" ")),data},parse_fingerprint:function(line){var parts=line.substring(14).split(" "),data={};return data.hash=parts.shift(),data.fingerprint=parts.shift(),data},parse_fmtp:function(line){var i,key,value,parts=line.split(" "),data=[];for(parts.shift(),parts=parts.join(" ").split(";"),i=0;i<parts.length;i++){for(key=parts[i].split("=")[0];key.length&&" "==key[0];)key=key.substring(1);value=parts[i].split("=")[1],key&&value?data.push({name:key,value:value}):key&&data.push({name:"",value:key})}return data},parse_icecandidate:function(line){var candidate={},elems=line.split(" ");candidate.foundation=elems[0].substring(12),candidate.component=elems[1],candidate.protocol=elems[2].toLowerCase(),candidate.priority=elems[3],candidate.ip=elems[4],candidate.port=elems[5],candidate.type=elems[7],candidate.generation=0;for(var i=8;i<elems.length;i+=2)switch(elems[i]){case"raddr":candidate["rel-addr"]=elems[i+1];break;case"rport":candidate["rel-port"]=elems[i+1];break;case"generation":candidate.generation=elems[i+1];break;case"tcptype":candidate.tcptype=elems[i+1];break;default:console.log('parse_icecandidate not translating "'+elems[i]+'" = "'+elems[i+1]+'"')}return candidate.network="1",candidate.id=Math.random().toString(36).substr(2,10),candidate},build_icecandidate:function(cand){var line=["a=candidate:"+cand.foundation,cand.component,cand.protocol,cand.priority,cand.ip,cand.port,"typ",cand.type].join(" ");switch(line+=" ",cand.type){case"srflx":case"prflx":case"relay":cand.hasOwnAttribute("rel-addr")&&cand.hasOwnAttribute("rel-port")&&(line+="raddr",line+=" ",line+=cand["rel-addr"],line+=" ",line+="rport",line+=" ",line+=cand["rel-port"],line+=" ")}return cand.hasOwnAttribute("tcptype")&&(line+="tcptype",line+=" ",line+=cand.tcptype,line+=" "),line+="generation",line+=" ",line+=cand.hasOwnAttribute("generation")?cand.generation:"0"},parse_ssrc:function(desc){for(var lines=desc.split("\r\n"),data={},i=0;i<lines.length;i++)if("a=ssrc:"==lines[i].substring(0,7)){var idx=lines[i].indexOf(" ");data[lines[i].substr(idx+1).split(":",2)[0]]=lines[i].substr(idx+1).split(":",2)[1]}return data},parse_rtcpfb:function(line){var parts=line.substr(10).split(" "),data={};return data.pt=parts.shift(),data.type=parts.shift(),data.params=parts,data},parse_extmap:function(line){var parts=line.substr(9).split(" "),data={};return data.value=parts.shift(),-1!=data.value.indexOf("/")?(data.direction=data.value.substr(data.value.indexOf("/")+1),data.value=data.value.substr(0,data.value.indexOf("/"))):data.direction="both",data.uri=parts.shift(),data.params=parts,data},find_line:function(haystack,needle,sessionpart){for(var lines=haystack.split("\r\n"),i=0;i<lines.length;i++)if(lines[i].substring(0,needle.length)==needle)return lines[i];if(!sessionpart)return!1;lines=sessionpart.split("\r\n");for(var j=0;j<lines.length;j++)if(lines[j].substring(0,needle.length)==needle)return lines[j];return!1},find_lines:function(haystack,needle,sessionpart){for(var lines=haystack.split("\r\n"),needles=[],i=0;i<lines.length;i++)lines[i].substring(0,needle.length)==needle&&needles.push(lines[i]);if(needles.length||!sessionpart)return needles;lines=sessionpart.split("\r\n");for(var j=0;j<lines.length;j++)lines[j].substring(0,needle.length)==needle&&needles.push(lines[j]);return needles},candidateToJingle:function(line){if(0===line.indexOf("candidate:"))line="a="+line;else if("a=candidate:"!=line.substring(0,12))return console.log("parseCandidate called with a line that is not a candidate line"),console.log(line),null;"\r\n"==line.substring(line.length-2)&&(line=line.substring(0,line.length-2));var i,candidate={},elems=line.split(" ");if("typ"!=elems[6])return console.log("did not find typ in the right place"),console.log(line),null;for(candidate.foundation=elems[0].substring(12),candidate.component=elems[1],candidate.protocol=elems[2].toLowerCase(),candidate.priority=elems[3],candidate.ip=elems[4],candidate.port=elems[5],candidate.type=elems[7],candidate.generation="0",i=8;i<elems.length;i+=2)switch(elems[i]){case"raddr":candidate["rel-addr"]=elems[i+1];break;case"rport":candidate["rel-port"]=elems[i+1];break;case"generation":candidate.generation=elems[i+1];break;case"tcptype":candidate.tcptype=elems[i+1];break;default:console.log('not translating "'+elems[i]+'" = "'+elems[i+1]+'"')}return candidate.network="1",candidate.id=Math.random().toString(36).substr(2,10),candidate},candidateFromJingle:function(cand){var parts=["a=candidate:"+cand.getAttribute("foundation"),cand.getAttribute("component"),cand.getAttribute("protocol"),cand.getAttribute("priority"),cand.getAttribute("ip"),cand.getAttribute("port"),"typ",cand.getAttribute("type")];switch(cand.getAttribute("type")){case"srflx":case"prflx":case"relay":cand.getAttribute("rel-addr")&&cand.getAttribute("rel-port")&&(parts.push("raddr"),parts.push(cand.getAttribute("rel-addr")),parts.push("rport"),parts.push(cand.getAttribute("rel-port")))}return parts.push("generation"),parts.push(cand.getAttribute("generation")||"0"),parts.join(" ")+"\r\n"}}}(jQuery);/*!
* Source: lib/strophe.jingle/strophe.jingle.adapter.js, license: MIT, url: https://github.com/ESTOS/strophe.jingle
*/
-var setupRTC,getUserMediaWithConstraints,TraceablePeerConnection;!function($){TraceablePeerConnection=function(ice_config,constraints){var self=this,RTCPeerconnection=navigator.mozGetUserMedia?mozRTCPeerConnection:webkitRTCPeerConnection;this.peerconnection=new RTCPeerconnection(ice_config,constraints),this.updateLog=[],this.stats={},this.statsinterval=null,this.maxstats=300,this.trace=function(what,info){self.updateLog.push({time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",JSON.stringify(event.candidate,null," ")),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",event.stream.id),null!==self.onaddstream&&self.onaddstream(event)},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",event.stream.id),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},navigator.mozGetUserMedia||(this.statsinterval=window.setInterval(function(){self.peerconnection.getStats(function(stats){for(var results=stats.result(),i=0;i<results.length;++i){var now=new Date;results[i].names().forEach(function(name){var id=results[i].id+"-"+name;self.stats[id]||(self.stats[id]={startTime:now,endTime:now,values:[],times:[]}),self.stats[id].values.push(results[i].stat(name)),self.stats[id].times.push(now.getTime()),self.stats[id].values.length>self.maxstats&&(self.stats[id].values.shift(),self.stats[id].times.shift()),self.stats[id].endTime=now})}})},1e3))},dumpSDP=function(description){return"type: "+description.type+"\r\n"+description.sdp},void 0!==TraceablePeerConnection.prototype.__defineGetter__&&(TraceablePeerConnection.prototype.__defineGetter__("signalingState",function(){return this.peerconnection.signalingState}),TraceablePeerConnection.prototype.__defineGetter__("iceConnectionState",function(){return this.peerconnection.iceConnectionState}),TraceablePeerConnection.prototype.__defineGetter__("localDescription",function(){return this.peerconnection.localDescription}),TraceablePeerConnection.prototype.__defineGetter__("remoteDescription",function(){return this.peerconnection.remoteDescription})),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",stream.id),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",stream.id),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description,function(){self.trace("setLocalDescriptionOnSuccess"),successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description,function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null),this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createOffer",JSON.stringify(constraints,null," ")),this.peerconnection.createOffer(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback(err)},constraints)},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createAnswer",JSON.stringify(constraints,null," ")),this.peerconnection.createAnswer(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback(err)},constraints)},TraceablePeerConnection.prototype.addIceCandidate=function(candidate){this.trace("addIceCandidate",JSON.stringify(candidate,null," ")),this.peerconnection.addIceCandidate(candidate)},TraceablePeerConnection.prototype.getStats=function(callback){navigator.mozGetUserMedia||this.peerconnection.getStats(callback)},setupRTC=function(){var RTC=null;if(navigator.mozGetUserMedia){console.log("This appears to be Firefox");var version=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10);version>=22&&(RTC={peerconnection:mozRTCPeerConnection,browser:"firefox",getUserMedia:navigator.mozGetUserMedia.bind(navigator),attachMediaStream:function(element,stream){element[0].mozSrcObject=stream,element[0].play()},pc_constraints:{}},MediaStream.prototype.getVideoTracks||(MediaStream.prototype.getVideoTracks=function(){return[]}),MediaStream.prototype.getAudioTracks||(MediaStream.prototype.getAudioTracks=function(){return[]}),RTCSessionDescription=mozRTCSessionDescription,RTCIceCandidate=mozRTCIceCandidate)}else navigator.webkitGetUserMedia&&(console.log("This appears to be Chrome"),RTC={peerconnection:webkitRTCPeerConnection,browser:"chrome",getUserMedia:navigator.webkitGetUserMedia.bind(navigator),attachMediaStream:function(element,stream){element.attr("src",webkitURL.createObjectURL(stream))},pc_constraints:{optional:[{DtlsSrtpKeyAgreement:"true"}]}},-1!=navigator.userAgent.indexOf("Android")&&(RTC.pc_constraints={}),webkitMediaStream.prototype.getVideoTracks||(webkitMediaStream.prototype.getVideoTracks=function(){return this.videoTracks}),webkitMediaStream.prototype.getAudioTracks||(webkitMediaStream.prototype.getAudioTracks=function(){return this.audioTracks}));if(null===RTC)try{console.log("Browser does not appear to be WebRTC-capable")}catch(e){}return RTC},getUserMediaWithConstraints=function(um,resolution,bandwidth,fps){var constraints={audio:!1,video:!1};switch(um.indexOf("video")>=0&&(constraints.video={mandatory:{}}),um.indexOf("audio")>=0&&(constraints.audio={}),um.indexOf("screen")>=0&&(constraints.video={mandatory:{chromeMediaSource:"screen"}}),resolution&&!constraints.video&&(constraints.video={mandatory:{}}),resolution){case"1080":case"fullhd":constraints.video.mandatory.minWidth=1920,constraints.video.mandatory.minHeight=1080,constraints.video.mandatory.minAspectRatio=1.77;break;case"720":case"hd":constraints.video.mandatory.minWidth=1280,constraints.video.mandatory.minHeight=720,constraints.video.mandatory.minAspectRatio=1.77;break;case"360":constraints.video.mandatory.minWidth=640,constraints.video.mandatory.minHeight=360,constraints.video.mandatory.minAspectRatio=1.77;break;case"180":constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=180,constraints.video.mandatory.minAspectRatio=1.77;break;case"960":constraints.video.mandatory.minWidth=960,constraints.video.mandatory.minHeight=720;break;case"640":case"vga":constraints.video.mandatory.minWidth=640,constraints.video.mandatory.minHeight=480;break;case"320":constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=240;break;default:-1!=navigator.userAgent.indexOf("Android")&&(constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=240,constraints.video.mandatory.maxFrameRate=15)}bandwidth&&(constraints.video||(constraints.video={mandatory:{}}),constraints.video.optional=[{bandwidth:bandwidth}]),fps&&(constraints.video||(constraints.video={mandatory:{}}),constraints.video.mandatory.minFrameRate=fps);try{RTC.getUserMedia(constraints,function(stream){console.log("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){console.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){console.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}}}(jQuery),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;8>i;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;numberOfBytes>i;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){"function"==typeof define&&define.amd?define(factory.bind(root,root.crypto||root.msCrypto)):"undefined"!=typeof module&&module.exports?module.exports=factory(require("crypto")):root.BigInt=factory(root.crypto||root.msCrypto)}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;n>i;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];n>i;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;p>i;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;s-1>=j&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;a>i;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=ky>kx+shift?kx+shift:ky;for(i=ky-1-shift;kx>i&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;ky>i;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(q[i-ky]=r[i]==y[ky-1]?mask:Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(-1==base){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),1>d)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;k>i&&(d=digitsStr.indexOf(s.substring(i,i+1),0),36>=base&&d>=36&&(d-=26),!(d>=base||0>d));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;kk>i;i++)y[i]=x[i];for(;k>i;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),-1==base){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;k>i;i++)if(c+=x[i],b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;k>i;i++)c+=x[i]*n,b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;kx>i;i++){for(c=s0[2*i]+x[i]*x[i],s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;kx>j;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,0>k1)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;kn>i;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;ky-4>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ky>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn-4>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ks>j;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;b>i;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\x00"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);b>i;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};256>i;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],this.sigBytes=sigBytes!=undefined?sigBytes:4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;thatSigBytes>i;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;thatSigBytes>i;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;nBytes>i;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;hexStrLength>i;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;latin1StrLength>i;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;nWordsReady>offset;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});
-return C}(Math);return function(){{var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;sigBytes>i;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;4>j&&sigBytes>i+.75*j;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);-1!=paddingIndex&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;base64StrLength>i;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;blockSize>i;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;nPaddingBytes>i;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;256>i;i++)d[i]=128>i?i<<1:i<<1^283;for(var x=0,xi=0,i=0;256>i;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRows>ksRow;ksRow++)if(keySize>ksRow)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;ksRows>invKsRow;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;nRounds>round;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;80>i;i++){if(16>i)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;sqrtN>=factor;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;64>nPrime;)isPrime(n)&&(8>nPrime&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;64>i;i++){if(16>i)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){{var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;hasherBlockSize>i;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;blockSize>i;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
+var setupRTC,getUserMediaWithConstraints,TraceablePeerConnection;!function($){TraceablePeerConnection=function(ice_config,constraints){var self=this,RTCPeerconnection=navigator.mozGetUserMedia?mozRTCPeerConnection:webkitRTCPeerConnection;this.peerconnection=new RTCPeerconnection(ice_config,constraints),this.updateLog=[],this.stats={},this.statsinterval=null,this.maxstats=300,this.trace=function(what,info){self.updateLog.push({time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",JSON.stringify(event.candidate,null," ")),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",event.stream.id),null!==self.onaddstream&&self.onaddstream(event)},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",event.stream.id),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},navigator.mozGetUserMedia||(this.statsinterval=window.setInterval(function(){self.peerconnection.getStats(function(stats){for(var results=stats.result(),i=0;i<results.length;++i){var now=new Date;results[i].names().forEach(function(name){var id=results[i].id+"-"+name;self.stats[id]||(self.stats[id]={startTime:now,endTime:now,values:[],times:[]}),self.stats[id].values.push(results[i].stat(name)),self.stats[id].times.push(now.getTime()),self.stats[id].values.length>self.maxstats&&(self.stats[id].values.shift(),self.stats[id].times.shift()),self.stats[id].endTime=now})}})},1e3))},dumpSDP=function(description){return"type: "+description.type+"\r\n"+description.sdp},["signalingState","iceConnectionState","localDescription","remoteDescription"].forEach(function(prop){Object.defineProperty(TraceablePeerConnection.prototype,prop,{get:function(){return this.peerconnection[prop]}})}),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",stream.id),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",stream.id),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description,function(){self.trace("setLocalDescriptionOnSuccess"),successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description,function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null),this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createOffer",JSON.stringify(constraints,null," ")),this.peerconnection.createOffer(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback(err)},constraints)},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createAnswer",JSON.stringify(constraints,null," ")),this.peerconnection.createAnswer(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback(err)},constraints)},TraceablePeerConnection.prototype.addIceCandidate=function(candidate,successCallback,failureCallback){var self=this;this.trace("addIceCandidate",JSON.stringify(candidate,null," ")),this.peerconnection.addIceCandidate(candidate),this.peerconnection.addIceCandidate(candidate,function(){self.trace("addIceCandidateOnSuccess"),successCallback&&successCallback()},function(err){self.trace("addIceCandidateOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.getStats=function(callback){navigator.mozGetUserMedia||this.peerconnection.getStats(callback)},setupRTC=function(){var RTC=null;if(navigator.mozGetUserMedia&&mozRTCPeerConnection){console.log("This appears to be Firefox");var version=navigator.userAgent.match(/Firefox/)?parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10):0;version>=22&&(RTC={peerconnection:mozRTCPeerConnection,browser:"firefox",getUserMedia:navigator.mozGetUserMedia.bind(navigator),attachMediaStream:function(element,stream){element[0].mozSrcObject=stream,element[0].play()},pc_constraints:{}},RTCSessionDescription=mozRTCSessionDescription,RTCIceCandidate=mozRTCIceCandidate)}else navigator.webkitGetUserMedia&&(console.log("This appears to be Chrome"),RTC={peerconnection:webkitRTCPeerConnection,browser:"chrome",getUserMedia:navigator.webkitGetUserMedia.bind(navigator),attachMediaStream:function(element,stream){element.attr("src",webkitURL.createObjectURL(stream))},pc_constraints:{optional:[{DtlsSrtpKeyAgreement:"true"}]}});if(null===RTC)try{console.log("Browser does not appear to be WebRTC-capable")}catch(e){}return RTC},getUserMediaWithConstraints=function(um,resolution,bandwidth,fps){var constraints={audio:!1,video:!1};switch(um.indexOf("video")>=0&&(constraints.video={mandatory:{}}),um.indexOf("audio")>=0&&(constraints.audio={}),um.indexOf("screen")>=0&&(constraints.video={mandatory:{chromeMediaSource:"screen"}}),resolution&&!constraints.video&&(constraints.video={mandatory:{}}),resolution){case"1080":case"fullhd":constraints.video.mandatory.minWidth=1920,constraints.video.mandatory.minHeight=1080;break;case"720":case"hd":constraints.video.mandatory.minWidth=1280,constraints.video.mandatory.minHeight=720;break;case"360":constraints.video.mandatory.minWidth=640,constraints.video.mandatory.minHeight=360;break;case"180":constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=180;break;case"960":constraints.video.mandatory.minWidth=960,constraints.video.mandatory.minHeight=720;break;case"640":case"vga":constraints.video.mandatory.minWidth=640,constraints.video.mandatory.minHeight=480;break;case"320":constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=240;break;default:-1!=navigator.userAgent.indexOf("Android")&&(constraints.video.mandatory.minWidth=320,constraints.video.mandatory.minHeight=240,constraints.video.mandatory.maxFrameRate=15)}constraints.video.minWidth&&(constraints.video.maxWidth=constraints.video.minWidth),constraints.video.minHeight&&(constraints.video.maxHeight=constraints.video.minHeight),bandwidth&&(constraints.video||(constraints.video={mandatory:{}}),constraints.video.optional=[{bandwidth:bandwidth}]),fps&&(constraints.video||(constraints.video={mandatory:{}}),constraints.video.mandatory.minFrameRate=fps);try{RTC.getUserMedia(constraints,function(stream){console.log("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){console.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){console.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}}}(jQuery),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;8>i;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;numberOfBytes>i;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){if("function"==typeof define&&define.amd)define(factory.bind(root,root.crypto||root.msCrypto));else if("undefined"!=typeof module&&module.exports)module.exports=factory(require("crypto"));else try{root.BigInt=factory(root.crypto||root.msCrypto)}catch(e){console.warn(e.message)}}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;n>i;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];n>i;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;p>i;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;s-1>=j&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;a>i;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=ky>kx+shift?kx+shift:ky;for(i=ky-1-shift;kx>i&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;ky>i;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(q[i-ky]=r[i]==y[ky-1]?mask:Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(-1==base){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),1>d)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;k>i&&(d=digitsStr.indexOf(s.substring(i,i+1),0),36>=base&&d>=36&&(d-=26),!(d>=base||0>d));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;kk>i;i++)y[i]=x[i];for(;k>i;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),-1==base){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;k>i;i++)if(c+=x[i],b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;k>i;i++)c+=x[i]*n,b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;kx>i;i++){for(c=s0[2*i]+x[i]*x[i],s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;kx>j;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,0>k1)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;kn>i;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;ky-4>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ky>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn-4>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ks>j;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;b>i;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\x00"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);b>i;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};256>i;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],this.sigBytes=sigBytes!=undefined?sigBytes:4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;thatSigBytes>i;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;thatSigBytes>i;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;nBytes>i;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;hexStrLength>i;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;latin1StrLength>i;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;nWordsReady>offset;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});return C}(Math);return function(){{var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;sigBytes>i;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;4>j&&sigBytes>i+.75*j;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));
+var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);-1!=paddingIndex&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;base64StrLength>i;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;blockSize>i;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;nPaddingBytes>i;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;256>i;i++)d[i]=128>i?i<<1:i<<1^283;for(var x=0,xi=0,i=0;256>i;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRows>ksRow;ksRow++)if(keySize>ksRow)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;ksRows>invKsRow;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;nRounds>round;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;80>i;i++){if(16>i)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;sqrtN>=factor;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;64>nPrime;)isPrime(n)&&(8>nPrime&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;64>i;i++){if(16>i)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){{var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;hasherBlockSize>i;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;blockSize>i;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
* Source: lib/otr/build/dep/eventemitter.js, license: MIT, url: http://git.io/ee
*/
/*!
@@ -72,7 +72,7 @@ return C}(Math);return function(){{var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.Wo
* MIT license
* @preserve
*/
-function(){"use strict";function EventEmitter(){}function indexOfListener(listeners,listener){for(var i=listeners.length;i--;)if(listeners[i].listener===listener)return i;return-1}function alias(name){return function(){return this[name].apply(this,arguments)}}var proto=EventEmitter.prototype;proto.getListeners=function(evt){var response,key,events=this._getEvents();if("object"==typeof evt){response={};for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&(response[key]=events[key])}else response=events[evt]||(events[evt]=[]);return response},proto.flattenListeners=function(listeners){var i,flatListeners=[];for(i=0;i<listeners.length;i+=1)flatListeners.push(listeners[i].listener);return flatListeners},proto.getListenersAsObject=function(evt){var response,listeners=this.getListeners(evt);return listeners instanceof Array&&(response={},response[evt]=listeners),response||listeners},proto.addListener=function(evt,listener){var key,listeners=this.getListenersAsObject(evt),listenerIsWrapped="object"==typeof listener;for(key in listeners)listeners.hasOwnProperty(key)&&-1===indexOfListener(listeners[key],listener)&&listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:!1});return this},proto.on=alias("addListener"),proto.addOnceListener=function(evt,listener){return this.addListener(evt,{listener:listener,once:!0})},proto.once=alias("addOnceListener"),proto.defineEvent=function(evt){return this.getListeners(evt),this},proto.defineEvents=function(evts){for(var i=0;i<evts.length;i+=1)this.defineEvent(evts[i]);return this},proto.removeListener=function(evt,listener){var index,key,listeners=this.getListenersAsObject(evt);for(key in listeners)listeners.hasOwnProperty(key)&&(index=indexOfListener(listeners[key],listener),-1!==index&&listeners[key].splice(index,1));return this},proto.off=alias("removeListener"),proto.addListeners=function(evt,listeners){return this.manipulateListeners(!1,evt,listeners)},proto.removeListeners=function(evt,listeners){return this.manipulateListeners(!0,evt,listeners)},proto.manipulateListeners=function(remove,evt,listeners){var i,value,single=remove?this.removeListener:this.addListener,multiple=remove?this.removeListeners:this.addListeners;if("object"!=typeof evt||evt instanceof RegExp)for(i=listeners.length;i--;)single.call(this,evt,listeners[i]);else for(i in evt)evt.hasOwnProperty(i)&&(value=evt[i])&&("function"==typeof value?single.call(this,i,value):multiple.call(this,i,value));return this},proto.removeEvent=function(evt){var key,type=typeof evt,events=this._getEvents();if("string"===type)delete events[evt];else if("object"===type)for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&delete events[key];else delete this._events;return this},proto.emitEvent=function(evt,args){var listener,i,key,response,listeners=this.getListenersAsObject(evt);for(key in listeners)if(listeners.hasOwnProperty(key))for(i=listeners[key].length;i--;)listener=listeners[key][i],listener.once===!0&&this.removeListener(evt,listener.listener),response=listener.listener.apply(this,args||[]),response===this._getOnceReturnValue()&&this.removeListener(evt,listener.listener);return this},proto.trigger=alias("emitEvent"),proto.emit=function(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args)},proto.setOnceReturnValue=function(value){return this._onceReturnValue=value,this},proto._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},proto._getEvents=function(){return this._events||(this._events={})},"function"==typeof define&&define.amd?define(function(){return EventEmitter}):"object"==typeof module&&module.exports?module.exports=EventEmitter:this.EventEmitter=EventEmitter}.call(this),function(root,factory){"function"==typeof define&&define.amd?define(["bigint","crypto","eventemitter"],function(BigInt,CryptoJS,EventEmitter){var root={BigInt:BigInt,CryptoJS:CryptoJS,EventEmitter:EventEmitter,OTR:{},DSA:{}};return factory.call(root)}):(root.OTR={},root.DSA={},factory.call(root))}(this,function(){return function(){"use strict";var root=this,CONST={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:" ",WHITESPACE_TAG_V2:" ",WHITESPACE_TAG_V3:" ",OTR_TAG:"?OTR",OTR_VERSION_1:"\x00",OTR_VERSION_2:"\x00",OTR_VERSION_3:"\x00",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};"undefined"!=typeof module&&module.exports?module.exports=CONST:root.OTR.CONST=CONST}.call(this),function(){"use strict";function intCompare(x,y){var z=~(x^y);return z&=z>>16,z&=z>>8,z&=z>>4,z&=z>>2,z&=z>>1,1&z}var CryptoJS,BigInt,root=this,HLP={};"undefined"!=typeof module&&module.exports?(module.exports=HLP={},CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js")):(root.OTR&&(root.OTR.HLP=HLP),root.DSA&&(root.DSA.HLP=HLP),CryptoJS=root.CryptoJS,BigInt=root.BigInt);var DTS={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},WRAPPER_BEGIN="?OTR",WRAPPER_END=".",TWO=BigInt.str2bigInt("2",10);HLP.debug=function(msg){this.debug&&"function"!=typeof this.debug&&"undefined"!=typeof console&&console.log(msg)},HLP.extend=function(child,parent){function Ctor(){this.constructor=child}for(var key in parent)Object.hasOwnProperty.call(parent,key)&&(child[key]=parent[key]);Ctor.prototype=parent.prototype,child.prototype=new Ctor,child.__super__=parent.prototype},HLP.compare=function(str1,str2){if(str1.length!==str2.length)return!1;for(var i=0,result=0;i<str1.length;i++)result|=str1[i].charCodeAt(0)^str2[i].charCodeAt(0);return intCompare(result,0)},HLP.randomExponent=function(){return BigInt.randBigInt(1536)},HLP.smpHash=function(version,fmpi,smpi){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(version,DTS.BYTE))),sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(fmpi))),smpi&&sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(smpi)));var hash=sha256.finalize();return HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},HLP.makeMac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA256(CryptoJS.enc.Latin1.parse(aesctr),pass);return HLP.mask(mac.toString(CryptoJS.enc.Latin1),0,160)},HLP.make1Mac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA1(CryptoJS.enc.Latin1.parse(aesctr),pass);return mac.toString(CryptoJS.enc.Latin1)},HLP.encryptAes=function(msg,c,iv){var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding},aesctr=CryptoJS.AES.encrypt(msg,CryptoJS.enc.Latin1.parse(c),opts),aesctr_decoded=CryptoJS.enc.Base64.parse(aesctr.toString());return CryptoJS.enc.Latin1.stringify(aesctr_decoded)},HLP.decryptAes=function(msg,c,iv){msg=CryptoJS.enc.Latin1.parse(msg);var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding};return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(msg),CryptoJS.enc.Latin1.parse(c),opts)},HLP.multPowMod=function(a,b,c,d,e){return BigInt.multMod(BigInt.powMod(a,b,e),BigInt.powMod(c,d,e),e)},HLP.ZKP=function(v,c,d,e){return BigInt.equals(c,HLP.smpHash(v,d,e))},HLP.GTOE=function(a,b){return BigInt.equals(a,b)||BigInt.greater(a,b)},HLP.between=function(x,a,b){return BigInt.greater(x,a)&&BigInt.greater(b,x)},HLP.checkGroup=function(g,N_MINUS_2){return HLP.GTOE(g,TWO)&&HLP.GTOE(N_MINUS_2,g)},HLP.h1=function(b,secbytes){var sha1=CryptoJS.algo.SHA1.create();return sha1.update(CryptoJS.enc.Latin1.parse(b)),sha1.update(CryptoJS.enc.Latin1.parse(secbytes)),sha1.finalize().toString(CryptoJS.enc.Latin1)},HLP.h2=function(b,secbytes){var sha256=CryptoJS.algo.SHA256.create();return sha256.update(CryptoJS.enc.Latin1.parse(b)),sha256.update(CryptoJS.enc.Latin1.parse(secbytes)),sha256.finalize().toString(CryptoJS.enc.Latin1)},HLP.mask=function(bytes,start,n){return bytes.substr(start/8,n/8)};var _toString=String.fromCharCode;HLP.packBytes=function(val,bytes){val=val.toString(16);for(var nex,res="";bytes>0;bytes--)nex=val.length?val.substr(-2,2):"0",val=val.substr(0,val.length-2),res=_toString(parseInt(nex,16))+res;return res},HLP.packINT=function(d){return HLP.packBytes(d,DTS.INT)},HLP.packCtr=function(d){return HLP.padCtr(HLP.packBytes(d,DTS.CTR))},HLP.padCtr=function(ctr){return ctr+"\x00\x00\x00\x00\x00\x00\x00\x00"},HLP.unpackCtr=function(d){return d=HLP.toByteArray(d.substring(0,8)),HLP.unpack(d)},HLP.unpack=function(arr){for(var val=0,i=0,len=arr.length;len>i;i++)val=256*val+arr[i];return val},HLP.packData=function(d){return HLP.packINT(d.length)+d},HLP.bits2bigInt=function(bits){return bits=HLP.toByteArray(bits),BigInt.ba2bigInt(bits)},HLP.packMPI=function(mpi){return HLP.packData(BigInt.bigInt2bits(BigInt.trim(mpi,0)))},HLP.packSHORT=function(short){return HLP.packBytes(short,DTS.SHORT)},HLP.unpackSHORT=function(short){return short=HLP.toByteArray(short),HLP.unpack(short)},HLP.packTLV=function(type,value){return HLP.packSHORT(type)+HLP.packSHORT(value.length)+value},HLP.readLen=function(msg){return msg=HLP.toByteArray(msg.substring(0,4)),HLP.unpack(msg)},HLP.readData=function(data){var n=HLP.unpack(data.splice(0,4));return[n,data]},HLP.readMPI=function(data){return data=HLP.toByteArray(data),data=HLP.readData(data),BigInt.ba2bigInt(data[1])},HLP.packMPIs=function(arr){return arr.reduce(function(prv,cur){return prv+HLP.packMPI(cur)},"")},HLP.unpackMPIs=function(num,mpis){for(var i=0,arr=[];num>i;i++)arr.push("MPI");return HLP.splitype(arr,mpis).map(function(m){return HLP.readMPI(m)})},HLP.wrapMsg=function(msg,fs,v3,our_it,their_it){msg=CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(msg)),msg=WRAPPER_BEGIN+":"+msg+WRAPPER_END;var its;if(v3&&(its="|",its+=HLP.readLen(our_it).toString(16),its+="|",its+=HLP.readLen(their_it).toString(16)),!fs)return[null,msg];var n=Math.ceil(msg.length/fs);if(n>65535)return["Too many fragments"];if(1==n)return[null,msg];var k,bi,ei,frag,mf,mfs=[];for(k=1;n>=k;k++)bi=(k-1)*fs,ei=k*fs,frag=msg.slice(bi,ei),mf=WRAPPER_BEGIN,v3&&(mf+=its),mf+=","+k+",",mf+=n+",",mf+=frag+",",mfs.push(mf);return[null,mfs]},HLP.splitype=function splitype(arr,msg){var data=[];return arr.forEach(function(a){var str;switch(a){case"PUBKEY":str=splitype(["SHORT","MPI","MPI","MPI","MPI"],msg).join("");break;case"DATA":case"MPI":str=msg.substring(0,HLP.readLen(msg)+4);break;default:str=msg.substring(0,DTS[a])}data.push(str),msg=msg.substring(str.length)}),data};var _bin2num=function(){for(var i=0,_bin2num={};256>i;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;256>i;++i)_bin2num[String.fromCharCode(63232+i)]=i;return _bin2num}();HLP.toByteArray=function(data){for(var rv=[],ary=data.split(""),i=-1,iz=ary.length,remain=iz%8;remain--;)++i,rv[i]=_bin2num[ary[i]];for(remain=iz>>3;remain--;)rv.push(_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]]);return rv}}.call(this),function(){"use strict";function timer(){var start=(new Date).getTime();return function(s){if(DEBUG&&"undefined"!=typeof console){var t=(new Date).getTime();console.log(s+": "+(t-start)),start=t}}}function makeRandom(min,max){var c=BigInt.randBigInt(BigInt.bitSize(max));return HLP.between(c,min,max)?c:makeRandom(min,max)}function isProbPrime(k,n){var i,B=3e4,l=BigInt.bitSize(k),primes=BigInt.primes;for(0===primes.length&&(primes=BigInt.findPrimes(B)),rpprb.length!=k.length&&(rpprb=BigInt.dup(k)),i=0;i<primes.length&&primes[i]<=B;i++)if(0===BigInt.modInt(k,primes[i])&&!BigInt.equalsInt(k,primes[i]))return 0;for(i=0;n>i;i++){for(BigInt.randBigInt_(rpprb,l,0);!BigInt.greater(k,rpprb);)BigInt.randBigInt_(rpprb,l,0);if(!BigInt.millerRabin(k,rpprb))return 0}return 1}function generatePrimes(bit_length){for(var q,p,rem,counter,t=timer(),repeat=bit_lengths[bit_length].repeat,N=bit_lengths[bit_length].N,LM1=BigInt.twoToThe(bit_length-1),bl4=4*bit_length,brk=!1;;)if(q=BigInt.randBigInt(N,1),q[0]|=1,isProbPrime(q,repeat)){for(t("q"),counter=0;bl4>counter;counter++)if(p=BigInt.randBigInt(bit_length,1),p[0]|=1,rem=BigInt.mod(p,q),rem=BigInt.sub(rem,ONE),p=BigInt.sub(p,rem),!BigInt.greater(LM1,p)&&isProbPrime(p,repeat)){t("p"),primes[bit_length]={p:p,q:q},brk=!0;break}if(brk)break}for(var g,h=BigInt.dup(TWO),pm1=BigInt.sub(p,ONE),e=BigInt.multMod(pm1,BigInt.inverseMod(q,p),p);;){g=BigInt.powMod(h,e,p);{if(!BigInt.equals(g,ONE))return primes[bit_length].g=g,void t("g");h=BigInt.add(h,ONE)}}throw new Error("Unreachable!")}function DSA(obj,opts){if(!(this instanceof DSA))return new DSA(obj,opts);if(opts=opts||{},obj){var self=this;return["p","q","g","y","x"].forEach(function(prop){self[prop]=obj[prop]}),void(this.type=obj.type||KEY_TYPE)}var bit_length=parseInt(opts.bit_length?opts.bit_length:1024,10);if(!bit_lengths[bit_length])throw new Error("Unsupported bit length.");primes[bit_length]||generatePrimes(bit_length),this.p=primes[bit_length].p,this.q=primes[bit_length].q,this.g=primes[bit_length].g,this.type=KEY_TYPE,this.x=makeRandom(ZERO,this.q),this.y=BigInt.powMod(this.g,this.x,this.p),opts.nocache&&(primes[bit_length]=null)}function tokenizeStr(str){var start,end;if(start=str.indexOf("("),end=str.lastIndexOf(")"),0>start||0>end)throw new Error("Malformed S-Expression");str=str.substring(start+1,end);var splt=str.search(/\s/),obj={type:str.substring(0,splt),val:[]};if(str=str.substring(splt+1,end),start=str.indexOf("("),0>start)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;len>i&&ss>es;i++)"("===str[i]&&ss++,")"===str[i]&&es++;obj.val.push(tokenizeStr(str.substring(start,++i))),str=str.substring(++i),start=str.indexOf("(")}return obj}function parseLibotr(obj){if(!obj.type)throw new Error("Parse error.");var o,val;return"privkeys"===obj.type?(o=[],obj.val.forEach(function(i){o.push(parseLibotr(i))}),o):(o={},obj.val.forEach(function(i){val=i.val[0],"string"==typeof val?0===val.indexOf("#")&&(val=val.substring(1,val.lastIndexOf("#")),val=BigInt.str2bigInt(val,16)):val=parseLibotr(i),o[i.type]=val}),o)}var CryptoJS,BigInt,Worker,WWPath,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=DSA,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),WWPath=require("path").join(__dirname,"/dsa-webworker.js"),HLP=require("./helpers.js")):(Object.keys(root.DSA).forEach(function(k){DSA[k]=root.DSA[k]}),root.DSA=DSA,CryptoJS=root.CryptoJS,BigInt=root.BigInt,Worker=root.Worker,WWPath="dsa-webworker.js",HLP=DSA.HLP);var ZERO=BigInt.str2bigInt("0",10),ONE=BigInt.str2bigInt("1",10),TWO=BigInt.str2bigInt("2",10),KEY_TYPE="\x00\x00",DEBUG=!1,rpprb=[],bit_lengths={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},primes={};DSA.prototype={constructor:DSA,packPublic:function(){var str=this.type;return str+=HLP.packMPI(this.p),str+=HLP.packMPI(this.q),str+=HLP.packMPI(this.g),str+=HLP.packMPI(this.y)},packPrivate:function(){var str=this.packPublic()+HLP.packMPI(this.x);return str=CryptoJS.enc.Latin1.parse(str),str.toString(CryptoJS.enc.Base64)},generateNonce:function(m){var priv=BigInt.bigInt2bits(BigInt.trim(this.x,0)),rand=BigInt.bigInt2bits(BigInt.randBigInt(256)),sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(priv)),sha256.update(m),sha256.update(CryptoJS.enc.Latin1.parse(rand));var hash=sha256.finalize();return hash=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1)),BigInt.rightShift_(hash,256-BigInt.bitSize(this.q)),HLP.between(hash,ZERO,this.q)?hash:this.generateNonce(m)},sign:function(m){m=CryptoJS.enc.Latin1.parse(m);for(var k,b=BigInt.str2bigInt(m.toString(CryptoJS.enc.Hex),16),r=ZERO,s=ZERO;BigInt.isZero(s)||BigInt.isZero(r);)k=this.generateNonce(m),r=BigInt.mod(BigInt.powMod(this.g,k,this.p),this.q),BigInt.isZero(r)||(s=BigInt.inverseMod(k,this.q),s=BigInt.mult(s,BigInt.add(b,BigInt.mult(this.x,r))),s=BigInt.mod(s,this.q));return[r,s]},fingerprint:function(){var pk=this.packPublic();return this.type===KEY_TYPE&&(pk=pk.substring(2)),pk=CryptoJS.enc.Latin1.parse(pk),CryptoJS.SHA1(pk).toString(CryptoJS.enc.Hex)}},DSA.parsePublic=function(str,priv){var fields=["SHORT","MPI","MPI","MPI","MPI"];priv&&fields.push("MPI"),str=HLP.splitype(fields,str);var obj={type:str[0],p:HLP.readMPI(str[1]),q:HLP.readMPI(str[2]),g:HLP.readMPI(str[3]),y:HLP.readMPI(str[4])};return priv&&(obj.x=HLP.readMPI(str[5])),new DSA(obj)},DSA.parsePrivate=function(str,libotr){return libotr?parseLibotr(tokenizeStr(str))[0]["private-key"].dsa:(str=CryptoJS.enc.Base64.parse(str),str=str.toString(CryptoJS.enc.Latin1),DSA.parsePublic(str,!0))},DSA.verify=function(key,m,r,s){if(!HLP.between(r,ZERO,key.q)||!HLP.between(s,ZERO,key.q))return!1;var hm=CryptoJS.enc.Latin1.parse(m);hm=BigInt.str2bigInt(hm.toString(CryptoJS.enc.Hex),16);var w=BigInt.inverseMod(s,key.q),u1=BigInt.multMod(hm,w,key.q),u2=BigInt.multMod(r,w,key.q);u1=BigInt.powMod(key.g,u1,key.p),u2=BigInt.powMod(key.y,u2,key.p);var v=BigInt.mod(BigInt.multMod(u1,u2,key.p),key.q);return BigInt.equals(v,r)},DSA.createInWebWorker=function(options,cb){var opts={path:WWPath,seed:BigInt.getSeed};options&&"object"==typeof options&&Object.keys(options).forEach(function(k){opts[k]=options[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker);var worker=new Worker(opts.path);worker.onmessage=function(e){var data=e.data;switch(data.type){case"debug":if(!DEBUG||"undefined"==typeof console)return;console.log(data.val);break;case"data":worker.terminate(),cb(DSA.parsePrivate(data.val));break;default:throw new Error("Unrecognized type.")}},worker.postMessage({seed:opts.seed(),imports:opts.imports,debug:DEBUG})}}.call(this),function(){"use strict";var CryptoJS,CONST,HLP,root=this,Parse={};"undefined"!=typeof module&&module.exports?(module.exports=Parse,CryptoJS=require("../vendor/crypto.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.Parse=Parse,CryptoJS=root.CryptoJS,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var tags={};tags[CONST.WHITESPACE_TAG_V2]=CONST.OTR_VERSION_2,tags[CONST.WHITESPACE_TAG_V3]=CONST.OTR_VERSION_3,Parse.parseMsg=function(otr,msg){var ver=[],start=msg.indexOf(CONST.OTR_TAG);if(!~start){if(this.initFragment(otr),ind=msg.indexOf(CONST.WHITESPACE_TAG),~ind){msg=msg.split(""),msg.splice(ind,16);for(var tag,len=msg.length;len>ind;)tag=msg.slice(ind,ind+8).join(""),Object.hasOwnProperty.call(tags,tag)?(msg.splice(ind,8),ver.push(tags[tag])):ind+=8;msg=msg.join("")}return{msg:msg,ver:ver}}var ind=start+CONST.OTR_TAG.length,com=msg[ind];if(","===com||"|"===com)return this.msgFragment(otr,msg.substring(ind+1),"|"===com);if(this.initFragment(otr),~["?","v"].indexOf(com)){"?"===msg[ind]&&(ver.push(CONST.OTR_VERSION_1),ind+=1);var vers={2:CONST.OTR_VERSION_2,3:CONST.OTR_VERSION_3},qs=msg.substring(ind+1),qi=qs.indexOf("?");return qi>=1&&(qs=qs.substring(0,qi).split(""),"v"===msg[ind]&&qs.forEach(function(q){Object.hasOwnProperty.call(vers,q)&&ver.push(vers[q])})),{cls:"query",ver:ver}}if(":"===com){ind+=1;var info=msg.substring(ind,ind+4);if(info.length<4)return{msg:msg};info=CryptoJS.enc.Base64.parse(info).toString(CryptoJS.enc.Latin1);var version=info.substring(0,2),type=info.substring(2);if(!otr["ALLOW_V"+HLP.unpackSHORT(version)])return{msg:msg};ind+=4;var end=msg.substring(ind).indexOf(".");if(!~end)return{msg:msg};msg=CryptoJS.enc.Base64.parse(msg.substring(ind,ind+end)),msg=CryptoJS.enc.Latin1.stringify(msg);var instance_tags;version===CONST.OTR_VERSION_3&&(instance_tags=msg.substring(0,8),msg=msg.substring(8));var cls;return~["","\n","",""].indexOf(type)?cls="ake":""===type&&(cls="data"),{version:version,type:type,msg:msg,cls:cls,instance_tags:instance_tags}}return" Error:"===msg.substring(ind,ind+7)?(otr.ERROR_START_AKE&&otr.sendQueryMsg(),{msg:msg.substring(ind+7),cls:"error"}):{msg:msg}},Parse.initFragment=function(otr){otr.fragment={s:"",j:0,k:0}},Parse.msgFragment=function(otr,msg,v3){if(msg=msg.split(","),v3){var its=msg.shift().split("|"),their_it=HLP.packINT(parseInt(its[0],16)),our_it=HLP.packINT(parseInt(its[1],16));if(otr.checkInstanceTags(their_it+our_it))return}if(!(msg.length<4||isNaN(parseInt(msg[0],10))||isNaN(parseInt(msg[1],10)))){var k=parseInt(msg[0],10),n=parseInt(msg[1],10);return msg=msg[2],k>n||0===n||0===k?void this.initFragment(otr):(1===k?(this.initFragment(otr),otr.fragment={k:1,n:n,s:msg}):n===otr.fragment.n&&k===otr.fragment.k+1?(otr.fragment.s+=msg,otr.fragment.k+=1):this.initFragment(otr),n===k?(msg=otr.fragment.s,this.initFragment(otr),this.parseMsg(otr,msg)):void 0)}}}.call(this),function(){"use strict";function hMac(gx,gy,pk,kid,m){var pass=CryptoJS.enc.Latin1.parse(m),hmac=CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,pass);return hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gx))),hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gy))),hmac.update(CryptoJS.enc.Latin1.parse(pk)),hmac.update(CryptoJS.enc.Latin1.parse(kid)),hmac.finalize().toString(CryptoJS.enc.Latin1)}function AKE(otr){if(!(this instanceof AKE))return new AKE(otr);this.otr=otr,this.our_dh=otr.our_old_dh,this.our_keyid=otr.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var self=this;["sendMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)})}var CryptoJS,BigInt,CONST,HLP,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=AKE,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),DSA=require("./dsa.js")):(root.OTR.AKE=AKE,CryptoJS=root.CryptoJS,BigInt=root.BigInt,CONST=root.OTR.CONST,HLP=root.OTR.HLP,DSA=root.DSA);var N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10));AKE.prototype={constructor:AKE,createKeys:function(g){var s=BigInt.powMod(g,this.our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.ssid=HLP.mask(HLP.h2("\x00",secbytes),0,64);var tmp=HLP.h2("",secbytes);this.c=HLP.mask(tmp,0,128),this.c_prime=HLP.mask(tmp,128,128),this.m1=HLP.h2("",secbytes),this.m2=HLP.h2("",secbytes),this.m1_prime=HLP.h2("",secbytes),this.m2_prime=HLP.h2("",secbytes)},verifySignMac:function(mac,aesctr,m2,c,their_y,our_dh_pk,m1,ctr){var vmac=HLP.makeMac(aesctr,m2);if(!HLP.compare(mac,vmac))return["MACs do not match."];var x=HLP.decryptAes(aesctr.substring(4),c,ctr);x=HLP.splitype(["PUBKEY","INT","SIG"],x.toString(CryptoJS.enc.Latin1));var m=hMac(their_y,our_dh_pk,x[0],x[1],m1),pub=DSA.parsePublic(x[0]),r=HLP.bits2bigInt(x[2].substring(0,20)),s=HLP.bits2bigInt(x[2].substring(20));return DSA.verify(pub,m,r,s)?[null,HLP.readLen(x[1]),pub]:["Cannot verify signature of m."]},makeM:function(their_y,m1,c,m2){var pk=this.otr.priv.packPublic(),kid=HLP.packINT(this.our_keyid),m=hMac(this.our_dh.publicKey,their_y,pk,kid,m1);m=this.otr.priv.sign(m);var msg=pk+kid;msg+=BigInt.bigInt2bits(m[0],20),msg+=BigInt.bigInt2bits(m[1],20),msg=CryptoJS.enc.Latin1.parse(msg);var aesctr=HLP.packData(HLP.encryptAes(msg,c,HLP.packCtr(0))),mac=HLP.makeMac(aesctr,m2);return aesctr+mac},akeSuccess:function(version){return HLP.debug.call(this.otr,"success"),BigInt.equals(this.their_y,this.our_dh.publicKey)?this.otr.error("equal keys - we have a problem."):(this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&BigInt.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&BigInt.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=version,this.otr.authstate=CONST.AUTHSTATE_NONE,this.otr.msgstate=CONST.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[CONST.STATUS_AKE_SUCCESS]),void this.otr.sendStored())},handleAKE:function(msg){var send,vsm,type,version=msg.version;switch(msg.type){case"":if(HLP.debug.call(this.otr,"d-h key message"),msg=HLP.splitype(["DATA","DATA"],msg.msg),this.otr.authstate===CONST.AUTHSTATE_AWAITING_DHKEY){var ourHash=HLP.readMPI(this.myhashed),theirHash=HLP.readMPI(msg[1]);if(BigInt.greater(ourHash,theirHash)){type="",send=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=CONST.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===CONST.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=CONST.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=msg[0].substring(4),this.hashed=msg[1].substring(4),type="\n",send=HLP.packMPI(this.our_dh.publicKey);break;case"\n":if(HLP.debug.call(this.otr,"reveal signature message"),msg=HLP.splitype(["MPI"],msg.msg),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;if(!BigInt.equals(this.their_y,HLP.readMPI(msg[0])))return}if(this.otr.authstate=CONST.AUTHSTATE_AWAITING_SIG,this.their_y=HLP.readMPI(msg[0]),!HLP.checkGroup(this.their_y,N_MINUS_2))return this.otr.error("Illegal g^y.");this.createKeys(this.their_y),type="",send=HLP.packMPI(this.r),send+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"":if(HLP.debug.call(this.otr,"signature message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_REVEALSIG)return;msg=HLP.splitype(["DATA","DATA","MAC"],msg.msg),this.r=HLP.readMPI(msg[0]);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key);var gxmpi=HLP.decryptAes(this.encrypted,key,HLP.packCtr(0));gxmpi=gxmpi.toString(CryptoJS.enc.Latin1),this.their_y=HLP.readMPI(gxmpi);var hash=CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi));return HLP.compare(this.hashed,hash.toString(CryptoJS.enc.Latin1))?HLP.checkGroup(this.their_y,N_MINUS_2)?(this.createKeys(this.their_y),vsm=this.verifySignMac(msg[2],msg[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],send=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(version,"",send),void this.akeSuccess(version))):this.otr.error("Illegal g^x."):this.otr.error("Hashed g^x does not match.");case"":if(HLP.debug.call(this.otr,"data message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;return msg=HLP.splitype(["DATA","MAC"],msg.msg),vsm=this.verifySignMac(msg[1],msg[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,void this.akeSuccess(version));default:return}this.sendMsg(version,type,send)},sendMsg:function(version,type,msg){var send=version+type,v3=version===CONST.OTR_VERSION_3;return v3&&(HLP.debug.call(this.otr,"instance tags"),send+=this.otr.our_instance_tag,send+=this.otr.their_instance_tag),send+=msg,send=HLP.wrapMsg(send,this.otr.fragment_size,v3,this.otr.our_instance_tag,this.otr.their_instance_tag),send[0]?this.otr.error(send[0]):void this.otr.io(send[1])},initiateAKE:function(version){HLP.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[CONST.STATUS_AKE_INIT]),this.otr.authstate=CONST.AUTHSTATE_AWAITING_DHKEY;var gxmpi=HLP.packMPI(this.our_dh.publicKey);gxmpi=CryptoJS.enc.Latin1.parse(gxmpi),this.r=BigInt.randBigInt(128);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key),this.myhashed=CryptoJS.SHA256(gxmpi),this.myhashed=HLP.packData(this.myhashed.toString(CryptoJS.enc.Latin1)),this.dhcommit=HLP.packData(HLP.encryptAes(gxmpi,key,HLP.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(version,"",this.dhcommit)}}}.call(this),function(){"use strict";function SM(reqs){return this instanceof SM?(this.version=1,this.our_fp=reqs.our_fp,this.their_fp=reqs.their_fp,this.ssid=reqs.ssid,this.debug=!!reqs.debug,void this.init()):new SM(reqs)}var CryptoJS,BigInt,EventEmitter,CONST,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=SM,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.SM=SM,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10)),Q=BigInt.sub(N,BigInt.str2bigInt("1",10));BigInt.divInt_(Q,2),HLP.extend(SM,EventEmitter),SM.prototype.init=function(){this.smpstate=CONST.SMPSTATE_EXPECT1,this.secret=null},SM.prototype.makeSecret=function(our,secret){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(this.version,1))),sha256.update(CryptoJS.enc.Hex.parse(our?this.our_fp:this.their_fp)),sha256.update(CryptoJS.enc.Hex.parse(our?this.their_fp:this.our_fp)),sha256.update(CryptoJS.enc.Latin1.parse(this.ssid)),sha256.update(CryptoJS.enc.Latin1.parse(secret));var hash=sha256.finalize();this.secret=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},SM.prototype.makeG2s=function(){this.a2=HLP.randomExponent(),this.a3=HLP.randomExponent(),this.g2a=BigInt.powMod(G,this.a2,N),this.g3a=BigInt.powMod(G,this.a3,N),HLP.checkGroup(this.g2a,N_MINUS_2)&&HLP.checkGroup(this.g3a,N_MINUS_2)||this.makeG2s()},SM.prototype.computeGs=function(g2a,g3a){this.g2=BigInt.powMod(g2a,this.a2,N),this.g3=BigInt.powMod(g3a,this.a3,N)},SM.prototype.computePQ=function(r){this.p=BigInt.powMod(this.g3,r,N),this.q=HLP.multPowMod(G,r,this.g2,this.secret,N)},SM.prototype.computeR=function(){this.r=BigInt.powMod(this.QoQ,this.a3,N)},SM.prototype.computeRab=function(r){return BigInt.powMod(r,this.a3,N)},SM.prototype.computeC=function(v,r){return HLP.smpHash(v,BigInt.powMod(G,r,N))},SM.prototype.computeD=function(r,a,c){return BigInt.subMod(r,BigInt.multMod(a,c,Q),Q)},SM.prototype.handleSM=function(msg){var send,r2,r3,r7,t1,t2,t3,t4,rab,tmp2,cR,d7,ms,trust,expectStates={2:CONST.SMPSTATE_EXPECT1,3:CONST.SMPSTATE_EXPECT2,4:CONST.SMPSTATE_EXPECT3,5:CONST.SMPSTATE_EXPECT4,7:CONST.SMPSTATE_EXPECT1};if(6===msg.type)return this.init(),void this.trigger("abort");if(this.smpstate!==expectStates[msg.type])return this.abort();switch(this.smpstate){case CONST.SMPSTATE_EXPECT1:HLP.debug.call(this,"smp tlv 2");var ind,question;return 7===msg.type&&(ind=msg.msg.indexOf("\x00"),question=msg.msg.substring(0,ind),msg.msg=msg.msg.substring(ind+1)),ms=HLP.readLen(msg.msg.substr(0,4)),6!==ms?this.abort():(msg=HLP.unpackMPIs(6,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.ZKP(1,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N))&&HLP.ZKP(2,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N))?(this.g3ao=msg[3],this.makeG2s(),r2=HLP.randomExponent(),r3=HLP.randomExponent(),this.c2=this.computeC(3,r2),this.c3=this.computeC(4,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.computeGs(msg[0],msg[3]),this.smpstate=CONST.SMPSTATE_EXPECT0,question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());
+function(){"use strict";function EventEmitter(){}function indexOfListener(listeners,listener){for(var i=listeners.length;i--;)if(listeners[i].listener===listener)return i;return-1}function alias(name){return function(){return this[name].apply(this,arguments)}}var proto=EventEmitter.prototype;proto.getListeners=function(evt){var response,key,events=this._getEvents();if("object"==typeof evt){response={};for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&(response[key]=events[key])}else response=events[evt]||(events[evt]=[]);return response},proto.flattenListeners=function(listeners){var i,flatListeners=[];for(i=0;i<listeners.length;i+=1)flatListeners.push(listeners[i].listener);return flatListeners},proto.getListenersAsObject=function(evt){var response,listeners=this.getListeners(evt);return listeners instanceof Array&&(response={},response[evt]=listeners),response||listeners},proto.addListener=function(evt,listener){var key,listeners=this.getListenersAsObject(evt),listenerIsWrapped="object"==typeof listener;for(key in listeners)listeners.hasOwnProperty(key)&&-1===indexOfListener(listeners[key],listener)&&listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:!1});return this},proto.on=alias("addListener"),proto.addOnceListener=function(evt,listener){return this.addListener(evt,{listener:listener,once:!0})},proto.once=alias("addOnceListener"),proto.defineEvent=function(evt){return this.getListeners(evt),this},proto.defineEvents=function(evts){for(var i=0;i<evts.length;i+=1)this.defineEvent(evts[i]);return this},proto.removeListener=function(evt,listener){var index,key,listeners=this.getListenersAsObject(evt);for(key in listeners)listeners.hasOwnProperty(key)&&(index=indexOfListener(listeners[key],listener),-1!==index&&listeners[key].splice(index,1));return this},proto.off=alias("removeListener"),proto.addListeners=function(evt,listeners){return this.manipulateListeners(!1,evt,listeners)},proto.removeListeners=function(evt,listeners){return this.manipulateListeners(!0,evt,listeners)},proto.manipulateListeners=function(remove,evt,listeners){var i,value,single=remove?this.removeListener:this.addListener,multiple=remove?this.removeListeners:this.addListeners;if("object"!=typeof evt||evt instanceof RegExp)for(i=listeners.length;i--;)single.call(this,evt,listeners[i]);else for(i in evt)evt.hasOwnProperty(i)&&(value=evt[i])&&("function"==typeof value?single.call(this,i,value):multiple.call(this,i,value));return this},proto.removeEvent=function(evt){var key,type=typeof evt,events=this._getEvents();if("string"===type)delete events[evt];else if("object"===type)for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&delete events[key];else delete this._events;return this},proto.emitEvent=function(evt,args){var listener,i,key,response,listeners=this.getListenersAsObject(evt);for(key in listeners)if(listeners.hasOwnProperty(key))for(i=listeners[key].length;i--;)listener=listeners[key][i],listener.once===!0&&this.removeListener(evt,listener.listener),response=listener.listener.apply(this,args||[]),response===this._getOnceReturnValue()&&this.removeListener(evt,listener.listener);return this},proto.trigger=alias("emitEvent"),proto.emit=function(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args)},proto.setOnceReturnValue=function(value){return this._onceReturnValue=value,this},proto._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},proto._getEvents=function(){return this._events||(this._events={})},"function"==typeof define&&define.amd?define(function(){return EventEmitter}):"object"==typeof module&&module.exports?module.exports=EventEmitter:this.EventEmitter=EventEmitter}.call(this),function(root,factory){"function"==typeof define&&define.amd?define(["bigint","crypto","eventemitter"],function(BigInt,CryptoJS,EventEmitter){var root={BigInt:BigInt,CryptoJS:CryptoJS,EventEmitter:EventEmitter,OTR:{},DSA:{}};return factory.call(root)}):(root.OTR={},root.DSA={},"undefined"!=typeof root.BigInt&&factory.call(root))}(this,function(){return function(){"use strict";var root=this,CONST={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:" ",WHITESPACE_TAG_V2:" ",WHITESPACE_TAG_V3:" ",OTR_TAG:"?OTR",OTR_VERSION_1:"\x00",OTR_VERSION_2:"\x00",OTR_VERSION_3:"\x00",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};"undefined"!=typeof module&&module.exports?module.exports=CONST:root.OTR.CONST=CONST}.call(this),function(){"use strict";function intCompare(x,y){var z=~(x^y);return z&=z>>16,z&=z>>8,z&=z>>4,z&=z>>2,z&=z>>1,1&z}var CryptoJS,BigInt,root=this,HLP={};"undefined"!=typeof module&&module.exports?(module.exports=HLP={},CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js")):(root.OTR&&(root.OTR.HLP=HLP),root.DSA&&(root.DSA.HLP=HLP),CryptoJS=root.CryptoJS,BigInt=root.BigInt);var DTS={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},WRAPPER_BEGIN="?OTR",WRAPPER_END=".",TWO=BigInt.str2bigInt("2",10);HLP.debug=function(msg){this.debug&&"function"!=typeof this.debug&&"undefined"!=typeof console&&console.log(msg)},HLP.extend=function(child,parent){function Ctor(){this.constructor=child}for(var key in parent)Object.hasOwnProperty.call(parent,key)&&(child[key]=parent[key]);Ctor.prototype=parent.prototype,child.prototype=new Ctor,child.__super__=parent.prototype},HLP.compare=function(str1,str2){if(str1.length!==str2.length)return!1;for(var i=0,result=0;i<str1.length;i++)result|=str1[i].charCodeAt(0)^str2[i].charCodeAt(0);return intCompare(result,0)},HLP.randomExponent=function(){return BigInt.randBigInt(1536)},HLP.smpHash=function(version,fmpi,smpi){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(version,DTS.BYTE))),sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(fmpi))),smpi&&sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(smpi)));var hash=sha256.finalize();return HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},HLP.makeMac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA256(CryptoJS.enc.Latin1.parse(aesctr),pass);return HLP.mask(mac.toString(CryptoJS.enc.Latin1),0,160)},HLP.make1Mac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA1(CryptoJS.enc.Latin1.parse(aesctr),pass);return mac.toString(CryptoJS.enc.Latin1)},HLP.encryptAes=function(msg,c,iv){var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding},aesctr=CryptoJS.AES.encrypt(msg,CryptoJS.enc.Latin1.parse(c),opts),aesctr_decoded=CryptoJS.enc.Base64.parse(aesctr.toString());return CryptoJS.enc.Latin1.stringify(aesctr_decoded)},HLP.decryptAes=function(msg,c,iv){msg=CryptoJS.enc.Latin1.parse(msg);var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding};return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(msg),CryptoJS.enc.Latin1.parse(c),opts)},HLP.multPowMod=function(a,b,c,d,e){return BigInt.multMod(BigInt.powMod(a,b,e),BigInt.powMod(c,d,e),e)},HLP.ZKP=function(v,c,d,e){return BigInt.equals(c,HLP.smpHash(v,d,e))},HLP.GTOE=function(a,b){return BigInt.equals(a,b)||BigInt.greater(a,b)},HLP.between=function(x,a,b){return BigInt.greater(x,a)&&BigInt.greater(b,x)},HLP.checkGroup=function(g,N_MINUS_2){return HLP.GTOE(g,TWO)&&HLP.GTOE(N_MINUS_2,g)},HLP.h1=function(b,secbytes){var sha1=CryptoJS.algo.SHA1.create();return sha1.update(CryptoJS.enc.Latin1.parse(b)),sha1.update(CryptoJS.enc.Latin1.parse(secbytes)),sha1.finalize().toString(CryptoJS.enc.Latin1)},HLP.h2=function(b,secbytes){var sha256=CryptoJS.algo.SHA256.create();return sha256.update(CryptoJS.enc.Latin1.parse(b)),sha256.update(CryptoJS.enc.Latin1.parse(secbytes)),sha256.finalize().toString(CryptoJS.enc.Latin1)},HLP.mask=function(bytes,start,n){return bytes.substr(start/8,n/8)};var _toString=String.fromCharCode;HLP.packBytes=function(val,bytes){val=val.toString(16);for(var nex,res="";bytes>0;bytes--)nex=val.length?val.substr(-2,2):"0",val=val.substr(0,val.length-2),res=_toString(parseInt(nex,16))+res;return res},HLP.packINT=function(d){return HLP.packBytes(d,DTS.INT)},HLP.packCtr=function(d){return HLP.padCtr(HLP.packBytes(d,DTS.CTR))},HLP.padCtr=function(ctr){return ctr+"\x00\x00\x00\x00\x00\x00\x00\x00"},HLP.unpackCtr=function(d){return d=HLP.toByteArray(d.substring(0,8)),HLP.unpack(d)},HLP.unpack=function(arr){for(var val=0,i=0,len=arr.length;len>i;i++)val=256*val+arr[i];return val},HLP.packData=function(d){return HLP.packINT(d.length)+d},HLP.bits2bigInt=function(bits){return bits=HLP.toByteArray(bits),BigInt.ba2bigInt(bits)},HLP.packMPI=function(mpi){return HLP.packData(BigInt.bigInt2bits(BigInt.trim(mpi,0)))},HLP.packSHORT=function(short){return HLP.packBytes(short,DTS.SHORT)},HLP.unpackSHORT=function(short){return short=HLP.toByteArray(short),HLP.unpack(short)},HLP.packTLV=function(type,value){return HLP.packSHORT(type)+HLP.packSHORT(value.length)+value},HLP.readLen=function(msg){return msg=HLP.toByteArray(msg.substring(0,4)),HLP.unpack(msg)},HLP.readData=function(data){var n=HLP.unpack(data.splice(0,4));return[n,data]},HLP.readMPI=function(data){return data=HLP.toByteArray(data),data=HLP.readData(data),BigInt.ba2bigInt(data[1])},HLP.packMPIs=function(arr){return arr.reduce(function(prv,cur){return prv+HLP.packMPI(cur)},"")},HLP.unpackMPIs=function(num,mpis){for(var i=0,arr=[];num>i;i++)arr.push("MPI");return HLP.splitype(arr,mpis).map(function(m){return HLP.readMPI(m)})},HLP.wrapMsg=function(msg,fs,v3,our_it,their_it){msg=CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(msg)),msg=WRAPPER_BEGIN+":"+msg+WRAPPER_END;var its;if(v3&&(its="|",its+=HLP.readLen(our_it).toString(16),its+="|",its+=HLP.readLen(their_it).toString(16)),!fs)return[null,msg];var n=Math.ceil(msg.length/fs);if(n>65535)return["Too many fragments"];if(1==n)return[null,msg];var k,bi,ei,frag,mf,mfs=[];for(k=1;n>=k;k++)bi=(k-1)*fs,ei=k*fs,frag=msg.slice(bi,ei),mf=WRAPPER_BEGIN,v3&&(mf+=its),mf+=","+k+",",mf+=n+",",mf+=frag+",",mfs.push(mf);return[null,mfs]},HLP.splitype=function splitype(arr,msg){var data=[];return arr.forEach(function(a){var str;switch(a){case"PUBKEY":str=splitype(["SHORT","MPI","MPI","MPI","MPI"],msg).join("");break;case"DATA":case"MPI":str=msg.substring(0,HLP.readLen(msg)+4);break;default:str=msg.substring(0,DTS[a])}data.push(str),msg=msg.substring(str.length)}),data};var _bin2num=function(){for(var i=0,_bin2num={};256>i;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;256>i;++i)_bin2num[String.fromCharCode(63232+i)]=i;return _bin2num}();HLP.toByteArray=function(data){for(var rv=[],ary=data.split(""),i=-1,iz=ary.length,remain=iz%8;remain--;)++i,rv[i]=_bin2num[ary[i]];for(remain=iz>>3;remain--;)rv.push(_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]]);return rv}}.call(this),function(){"use strict";function timer(){var start=(new Date).getTime();return function(s){if(DEBUG&&"undefined"!=typeof console){var t=(new Date).getTime();console.log(s+": "+(t-start)),start=t}}}function makeRandom(min,max){var c=BigInt.randBigInt(BigInt.bitSize(max));return HLP.between(c,min,max)?c:makeRandom(min,max)}function isProbPrime(k,n){var i,B=3e4,l=BigInt.bitSize(k),primes=BigInt.primes;for(0===primes.length&&(primes=BigInt.findPrimes(B)),rpprb.length!=k.length&&(rpprb=BigInt.dup(k)),i=0;i<primes.length&&primes[i]<=B;i++)if(0===BigInt.modInt(k,primes[i])&&!BigInt.equalsInt(k,primes[i]))return 0;for(i=0;n>i;i++){for(BigInt.randBigInt_(rpprb,l,0);!BigInt.greater(k,rpprb);)BigInt.randBigInt_(rpprb,l,0);if(!BigInt.millerRabin(k,rpprb))return 0}return 1}function generatePrimes(bit_length){for(var q,p,rem,counter,t=timer(),repeat=bit_lengths[bit_length].repeat,N=bit_lengths[bit_length].N,LM1=BigInt.twoToThe(bit_length-1),bl4=4*bit_length,brk=!1;;)if(q=BigInt.randBigInt(N,1),q[0]|=1,isProbPrime(q,repeat)){for(t("q"),counter=0;bl4>counter;counter++)if(p=BigInt.randBigInt(bit_length,1),p[0]|=1,rem=BigInt.mod(p,q),rem=BigInt.sub(rem,ONE),p=BigInt.sub(p,rem),!BigInt.greater(LM1,p)&&isProbPrime(p,repeat)){t("p"),primes[bit_length]={p:p,q:q},brk=!0;break}if(brk)break}for(var g,h=BigInt.dup(TWO),pm1=BigInt.sub(p,ONE),e=BigInt.multMod(pm1,BigInt.inverseMod(q,p),p);;){g=BigInt.powMod(h,e,p);{if(!BigInt.equals(g,ONE))return primes[bit_length].g=g,void t("g");h=BigInt.add(h,ONE)}}throw new Error("Unreachable!")}function DSA(obj,opts){if(!(this instanceof DSA))return new DSA(obj,opts);if(opts=opts||{},obj){var self=this;return["p","q","g","y","x"].forEach(function(prop){self[prop]=obj[prop]}),void(this.type=obj.type||KEY_TYPE)}var bit_length=parseInt(opts.bit_length?opts.bit_length:1024,10);if(!bit_lengths[bit_length])throw new Error("Unsupported bit length.");primes[bit_length]||generatePrimes(bit_length),this.p=primes[bit_length].p,this.q=primes[bit_length].q,this.g=primes[bit_length].g,this.type=KEY_TYPE,this.x=makeRandom(ZERO,this.q),this.y=BigInt.powMod(this.g,this.x,this.p),opts.nocache&&(primes[bit_length]=null)}function tokenizeStr(str){var start,end;if(start=str.indexOf("("),end=str.lastIndexOf(")"),0>start||0>end)throw new Error("Malformed S-Expression");str=str.substring(start+1,end);var splt=str.search(/\s/),obj={type:str.substring(0,splt),val:[]};if(str=str.substring(splt+1,end),start=str.indexOf("("),0>start)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;len>i&&ss>es;i++)"("===str[i]&&ss++,")"===str[i]&&es++;obj.val.push(tokenizeStr(str.substring(start,++i))),str=str.substring(++i),start=str.indexOf("(")}return obj}function parseLibotr(obj){if(!obj.type)throw new Error("Parse error.");var o,val;return"privkeys"===obj.type?(o=[],obj.val.forEach(function(i){o.push(parseLibotr(i))}),o):(o={},obj.val.forEach(function(i){val=i.val[0],"string"==typeof val?0===val.indexOf("#")&&(val=val.substring(1,val.lastIndexOf("#")),val=BigInt.str2bigInt(val,16)):val=parseLibotr(i),o[i.type]=val}),o)}var CryptoJS,BigInt,Worker,WWPath,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=DSA,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),WWPath=require("path").join(__dirname,"/dsa-webworker.js"),HLP=require("./helpers.js")):(Object.keys(root.DSA).forEach(function(k){DSA[k]=root.DSA[k]}),root.DSA=DSA,CryptoJS=root.CryptoJS,BigInt=root.BigInt,Worker=root.Worker,WWPath="dsa-webworker.js",HLP=DSA.HLP);var ZERO=BigInt.str2bigInt("0",10),ONE=BigInt.str2bigInt("1",10),TWO=BigInt.str2bigInt("2",10),KEY_TYPE="\x00\x00",DEBUG=!1,rpprb=[],bit_lengths={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},primes={};DSA.prototype={constructor:DSA,packPublic:function(){var str=this.type;return str+=HLP.packMPI(this.p),str+=HLP.packMPI(this.q),str+=HLP.packMPI(this.g),str+=HLP.packMPI(this.y)},packPrivate:function(){var str=this.packPublic()+HLP.packMPI(this.x);return str=CryptoJS.enc.Latin1.parse(str),str.toString(CryptoJS.enc.Base64)},generateNonce:function(m){var priv=BigInt.bigInt2bits(BigInt.trim(this.x,0)),rand=BigInt.bigInt2bits(BigInt.randBigInt(256)),sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(priv)),sha256.update(m),sha256.update(CryptoJS.enc.Latin1.parse(rand));var hash=sha256.finalize();return hash=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1)),BigInt.rightShift_(hash,256-BigInt.bitSize(this.q)),HLP.between(hash,ZERO,this.q)?hash:this.generateNonce(m)},sign:function(m){m=CryptoJS.enc.Latin1.parse(m);for(var k,b=BigInt.str2bigInt(m.toString(CryptoJS.enc.Hex),16),r=ZERO,s=ZERO;BigInt.isZero(s)||BigInt.isZero(r);)k=this.generateNonce(m),r=BigInt.mod(BigInt.powMod(this.g,k,this.p),this.q),BigInt.isZero(r)||(s=BigInt.inverseMod(k,this.q),s=BigInt.mult(s,BigInt.add(b,BigInt.mult(this.x,r))),s=BigInt.mod(s,this.q));return[r,s]},fingerprint:function(){var pk=this.packPublic();return this.type===KEY_TYPE&&(pk=pk.substring(2)),pk=CryptoJS.enc.Latin1.parse(pk),CryptoJS.SHA1(pk).toString(CryptoJS.enc.Hex)}},DSA.parsePublic=function(str,priv){var fields=["SHORT","MPI","MPI","MPI","MPI"];priv&&fields.push("MPI"),str=HLP.splitype(fields,str);var obj={type:str[0],p:HLP.readMPI(str[1]),q:HLP.readMPI(str[2]),g:HLP.readMPI(str[3]),y:HLP.readMPI(str[4])};return priv&&(obj.x=HLP.readMPI(str[5])),new DSA(obj)},DSA.parsePrivate=function(str,libotr){return libotr?parseLibotr(tokenizeStr(str))[0]["private-key"].dsa:(str=CryptoJS.enc.Base64.parse(str),str=str.toString(CryptoJS.enc.Latin1),DSA.parsePublic(str,!0))},DSA.verify=function(key,m,r,s){if(!HLP.between(r,ZERO,key.q)||!HLP.between(s,ZERO,key.q))return!1;var hm=CryptoJS.enc.Latin1.parse(m);hm=BigInt.str2bigInt(hm.toString(CryptoJS.enc.Hex),16);var w=BigInt.inverseMod(s,key.q),u1=BigInt.multMod(hm,w,key.q),u2=BigInt.multMod(r,w,key.q);u1=BigInt.powMod(key.g,u1,key.p),u2=BigInt.powMod(key.y,u2,key.p);var v=BigInt.mod(BigInt.multMod(u1,u2,key.p),key.q);return BigInt.equals(v,r)},DSA.createInWebWorker=function(options,cb){var opts={path:WWPath,seed:BigInt.getSeed};options&&"object"==typeof options&&Object.keys(options).forEach(function(k){opts[k]=options[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker);var worker=new Worker(opts.path);worker.onmessage=function(e){var data=e.data;switch(data.type){case"debug":if(!DEBUG||"undefined"==typeof console)return;console.log(data.val);break;case"data":worker.terminate(),cb(DSA.parsePrivate(data.val));break;default:throw new Error("Unrecognized type.")}},worker.postMessage({seed:opts.seed(),imports:opts.imports,debug:DEBUG})}}.call(this),function(){"use strict";var CryptoJS,CONST,HLP,root=this,Parse={};"undefined"!=typeof module&&module.exports?(module.exports=Parse,CryptoJS=require("../vendor/crypto.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.Parse=Parse,CryptoJS=root.CryptoJS,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var tags={};tags[CONST.WHITESPACE_TAG_V2]=CONST.OTR_VERSION_2,tags[CONST.WHITESPACE_TAG_V3]=CONST.OTR_VERSION_3,Parse.parseMsg=function(otr,msg){var ver=[],start=msg.indexOf(CONST.OTR_TAG);if(!~start){if(this.initFragment(otr),ind=msg.indexOf(CONST.WHITESPACE_TAG),~ind){msg=msg.split(""),msg.splice(ind,16);for(var tag,len=msg.length;len>ind;)tag=msg.slice(ind,ind+8).join(""),Object.hasOwnProperty.call(tags,tag)?(msg.splice(ind,8),ver.push(tags[tag])):ind+=8;msg=msg.join("")}return{msg:msg,ver:ver}}var ind=start+CONST.OTR_TAG.length,com=msg[ind];if(","===com||"|"===com)return this.msgFragment(otr,msg.substring(ind+1),"|"===com);if(this.initFragment(otr),~["?","v"].indexOf(com)){"?"===msg[ind]&&(ver.push(CONST.OTR_VERSION_1),ind+=1);var vers={2:CONST.OTR_VERSION_2,3:CONST.OTR_VERSION_3},qs=msg.substring(ind+1),qi=qs.indexOf("?");return qi>=1&&(qs=qs.substring(0,qi).split(""),"v"===msg[ind]&&qs.forEach(function(q){Object.hasOwnProperty.call(vers,q)&&ver.push(vers[q])})),{cls:"query",ver:ver}}if(":"===com){ind+=1;var info=msg.substring(ind,ind+4);if(info.length<4)return{msg:msg};info=CryptoJS.enc.Base64.parse(info).toString(CryptoJS.enc.Latin1);var version=info.substring(0,2),type=info.substring(2);if(!otr["ALLOW_V"+HLP.unpackSHORT(version)])return{msg:msg};ind+=4;var end=msg.substring(ind).indexOf(".");if(!~end)return{msg:msg};msg=CryptoJS.enc.Base64.parse(msg.substring(ind,ind+end)),msg=CryptoJS.enc.Latin1.stringify(msg);var instance_tags;version===CONST.OTR_VERSION_3&&(instance_tags=msg.substring(0,8),msg=msg.substring(8));var cls;return~["","\n","",""].indexOf(type)?cls="ake":""===type&&(cls="data"),{version:version,type:type,msg:msg,cls:cls,instance_tags:instance_tags}}return" Error:"===msg.substring(ind,ind+7)?(otr.ERROR_START_AKE&&otr.sendQueryMsg(),{msg:msg.substring(ind+7),cls:"error"}):{msg:msg}},Parse.initFragment=function(otr){otr.fragment={s:"",j:0,k:0}},Parse.msgFragment=function(otr,msg,v3){if(msg=msg.split(","),v3){var its=msg.shift().split("|"),their_it=HLP.packINT(parseInt(its[0],16)),our_it=HLP.packINT(parseInt(its[1],16));if(otr.checkInstanceTags(their_it+our_it))return}if(!(msg.length<4||isNaN(parseInt(msg[0],10))||isNaN(parseInt(msg[1],10)))){var k=parseInt(msg[0],10),n=parseInt(msg[1],10);return msg=msg[2],k>n||0===n||0===k?void this.initFragment(otr):(1===k?(this.initFragment(otr),otr.fragment={k:1,n:n,s:msg}):n===otr.fragment.n&&k===otr.fragment.k+1?(otr.fragment.s+=msg,otr.fragment.k+=1):this.initFragment(otr),n===k?(msg=otr.fragment.s,this.initFragment(otr),this.parseMsg(otr,msg)):void 0)}}}.call(this),function(){"use strict";function hMac(gx,gy,pk,kid,m){var pass=CryptoJS.enc.Latin1.parse(m),hmac=CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,pass);return hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gx))),hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gy))),hmac.update(CryptoJS.enc.Latin1.parse(pk)),hmac.update(CryptoJS.enc.Latin1.parse(kid)),hmac.finalize().toString(CryptoJS.enc.Latin1)}function AKE(otr){if(!(this instanceof AKE))return new AKE(otr);this.otr=otr,this.our_dh=otr.our_old_dh,this.our_keyid=otr.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var self=this;["sendMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)})}var CryptoJS,BigInt,CONST,HLP,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=AKE,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),DSA=require("./dsa.js")):(root.OTR.AKE=AKE,CryptoJS=root.CryptoJS,BigInt=root.BigInt,CONST=root.OTR.CONST,HLP=root.OTR.HLP,DSA=root.DSA);var N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10));AKE.prototype={constructor:AKE,createKeys:function(g){var s=BigInt.powMod(g,this.our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.ssid=HLP.mask(HLP.h2("\x00",secbytes),0,64);var tmp=HLP.h2("",secbytes);this.c=HLP.mask(tmp,0,128),this.c_prime=HLP.mask(tmp,128,128),this.m1=HLP.h2("",secbytes),this.m2=HLP.h2("",secbytes),this.m1_prime=HLP.h2("",secbytes),this.m2_prime=HLP.h2("",secbytes)},verifySignMac:function(mac,aesctr,m2,c,their_y,our_dh_pk,m1,ctr){var vmac=HLP.makeMac(aesctr,m2);if(!HLP.compare(mac,vmac))return["MACs do not match."];var x=HLP.decryptAes(aesctr.substring(4),c,ctr);x=HLP.splitype(["PUBKEY","INT","SIG"],x.toString(CryptoJS.enc.Latin1));var m=hMac(their_y,our_dh_pk,x[0],x[1],m1),pub=DSA.parsePublic(x[0]),r=HLP.bits2bigInt(x[2].substring(0,20)),s=HLP.bits2bigInt(x[2].substring(20));return DSA.verify(pub,m,r,s)?[null,HLP.readLen(x[1]),pub]:["Cannot verify signature of m."]},makeM:function(their_y,m1,c,m2){var pk=this.otr.priv.packPublic(),kid=HLP.packINT(this.our_keyid),m=hMac(this.our_dh.publicKey,their_y,pk,kid,m1);m=this.otr.priv.sign(m);var msg=pk+kid;msg+=BigInt.bigInt2bits(m[0],20),msg+=BigInt.bigInt2bits(m[1],20),msg=CryptoJS.enc.Latin1.parse(msg);var aesctr=HLP.packData(HLP.encryptAes(msg,c,HLP.packCtr(0))),mac=HLP.makeMac(aesctr,m2);return aesctr+mac},akeSuccess:function(version){return HLP.debug.call(this.otr,"success"),BigInt.equals(this.their_y,this.our_dh.publicKey)?this.otr.error("equal keys - we have a problem."):(this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&BigInt.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&BigInt.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=version,this.otr.authstate=CONST.AUTHSTATE_NONE,this.otr.msgstate=CONST.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[CONST.STATUS_AKE_SUCCESS]),void this.otr.sendStored())},handleAKE:function(msg){var send,vsm,type,version=msg.version;switch(msg.type){case"":if(HLP.debug.call(this.otr,"d-h key message"),msg=HLP.splitype(["DATA","DATA"],msg.msg),this.otr.authstate===CONST.AUTHSTATE_AWAITING_DHKEY){var ourHash=HLP.readMPI(this.myhashed),theirHash=HLP.readMPI(msg[1]);if(BigInt.greater(ourHash,theirHash)){type="",send=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=CONST.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===CONST.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=CONST.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=msg[0].substring(4),this.hashed=msg[1].substring(4),type="\n",send=HLP.packMPI(this.our_dh.publicKey);break;case"\n":if(HLP.debug.call(this.otr,"reveal signature message"),msg=HLP.splitype(["MPI"],msg.msg),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;if(!BigInt.equals(this.their_y,HLP.readMPI(msg[0])))return}if(this.otr.authstate=CONST.AUTHSTATE_AWAITING_SIG,this.their_y=HLP.readMPI(msg[0]),!HLP.checkGroup(this.their_y,N_MINUS_2))return this.otr.error("Illegal g^y.");this.createKeys(this.their_y),type="",send=HLP.packMPI(this.r),send+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"":if(HLP.debug.call(this.otr,"signature message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_REVEALSIG)return;msg=HLP.splitype(["DATA","DATA","MAC"],msg.msg),this.r=HLP.readMPI(msg[0]);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key);var gxmpi=HLP.decryptAes(this.encrypted,key,HLP.packCtr(0));gxmpi=gxmpi.toString(CryptoJS.enc.Latin1),this.their_y=HLP.readMPI(gxmpi);var hash=CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi));return HLP.compare(this.hashed,hash.toString(CryptoJS.enc.Latin1))?HLP.checkGroup(this.their_y,N_MINUS_2)?(this.createKeys(this.their_y),vsm=this.verifySignMac(msg[2],msg[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],send=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(version,"",send),void this.akeSuccess(version))):this.otr.error("Illegal g^x."):this.otr.error("Hashed g^x does not match.");case"":if(HLP.debug.call(this.otr,"data message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;return msg=HLP.splitype(["DATA","MAC"],msg.msg),vsm=this.verifySignMac(msg[1],msg[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,void this.akeSuccess(version));default:return}this.sendMsg(version,type,send)},sendMsg:function(version,type,msg){var send=version+type,v3=version===CONST.OTR_VERSION_3;return v3&&(HLP.debug.call(this.otr,"instance tags"),send+=this.otr.our_instance_tag,send+=this.otr.their_instance_tag),send+=msg,send=HLP.wrapMsg(send,this.otr.fragment_size,v3,this.otr.our_instance_tag,this.otr.their_instance_tag),send[0]?this.otr.error(send[0]):void this.otr.io(send[1])},initiateAKE:function(version){HLP.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[CONST.STATUS_AKE_INIT]),this.otr.authstate=CONST.AUTHSTATE_AWAITING_DHKEY;var gxmpi=HLP.packMPI(this.our_dh.publicKey);gxmpi=CryptoJS.enc.Latin1.parse(gxmpi),this.r=BigInt.randBigInt(128);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key),this.myhashed=CryptoJS.SHA256(gxmpi),this.myhashed=HLP.packData(this.myhashed.toString(CryptoJS.enc.Latin1)),this.dhcommit=HLP.packData(HLP.encryptAes(gxmpi,key,HLP.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(version,"",this.dhcommit)}}}.call(this),function(){"use strict";function SM(reqs){return this instanceof SM?(this.version=1,this.our_fp=reqs.our_fp,this.their_fp=reqs.their_fp,this.ssid=reqs.ssid,this.debug=!!reqs.debug,void this.init()):new SM(reqs)}var CryptoJS,BigInt,EventEmitter,CONST,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=SM,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.SM=SM,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10)),Q=BigInt.sub(N,BigInt.str2bigInt("1",10));BigInt.divInt_(Q,2),HLP.extend(SM,EventEmitter),SM.prototype.init=function(){this.smpstate=CONST.SMPSTATE_EXPECT1,this.secret=null},SM.prototype.makeSecret=function(our,secret){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(this.version,1))),sha256.update(CryptoJS.enc.Hex.parse(our?this.our_fp:this.their_fp)),sha256.update(CryptoJS.enc.Hex.parse(our?this.their_fp:this.our_fp)),sha256.update(CryptoJS.enc.Latin1.parse(this.ssid)),sha256.update(CryptoJS.enc.Latin1.parse(secret));var hash=sha256.finalize();this.secret=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},SM.prototype.makeG2s=function(){this.a2=HLP.randomExponent(),this.a3=HLP.randomExponent(),this.g2a=BigInt.powMod(G,this.a2,N),this.g3a=BigInt.powMod(G,this.a3,N),HLP.checkGroup(this.g2a,N_MINUS_2)&&HLP.checkGroup(this.g3a,N_MINUS_2)||this.makeG2s()},SM.prototype.computeGs=function(g2a,g3a){this.g2=BigInt.powMod(g2a,this.a2,N),this.g3=BigInt.powMod(g3a,this.a3,N)},SM.prototype.computePQ=function(r){this.p=BigInt.powMod(this.g3,r,N),this.q=HLP.multPowMod(G,r,this.g2,this.secret,N)},SM.prototype.computeR=function(){this.r=BigInt.powMod(this.QoQ,this.a3,N)},SM.prototype.computeRab=function(r){return BigInt.powMod(r,this.a3,N)},SM.prototype.computeC=function(v,r){return HLP.smpHash(v,BigInt.powMod(G,r,N))},SM.prototype.computeD=function(r,a,c){return BigInt.subMod(r,BigInt.multMod(a,c,Q),Q)},SM.prototype.handleSM=function(msg){var send,r2,r3,r7,t1,t2,t3,t4,rab,tmp2,cR,d7,ms,trust,expectStates={2:CONST.SMPSTATE_EXPECT1,3:CONST.SMPSTATE_EXPECT2,4:CONST.SMPSTATE_EXPECT3,5:CONST.SMPSTATE_EXPECT4,7:CONST.SMPSTATE_EXPECT1};if(6===msg.type)return this.init(),void this.trigger("abort");if(this.smpstate!==expectStates[msg.type])return this.abort();switch(this.smpstate){case CONST.SMPSTATE_EXPECT1:HLP.debug.call(this,"smp tlv 2");var ind,question;return 7===msg.type&&(ind=msg.msg.indexOf("\x00"),question=msg.msg.substring(0,ind),msg.msg=msg.msg.substring(ind+1)),ms=HLP.readLen(msg.msg.substr(0,4)),6!==ms?this.abort():(msg=HLP.unpackMPIs(6,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.ZKP(1,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N))&&HLP.ZKP(2,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N))?(this.g3ao=msg[3],this.makeG2s(),r2=HLP.randomExponent(),r3=HLP.randomExponent(),this.c2=this.computeC(3,r2),this.c3=this.computeC(4,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.computeGs(msg[0],msg[3]),this.smpstate=CONST.SMPSTATE_EXPECT0,question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());
case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(msg.msg.substr(0,4)),11!==ms)return this.abort();if(msg=HLP.unpackMPIs(11,msg.msg.substring(4)),!(HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.checkGroup(msg[6],N_MINUS_2)&&HLP.checkGroup(msg[7],N_MINUS_2)))return this.abort();if(!HLP.ZKP(3,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N)))return this.abort();if(!HLP.ZKP(4,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N)))return this.abort();if(this.g3ao=msg[3],this.computeGs(msg[0],msg[3]),t1=HLP.multPowMod(this.g3,msg[9],msg[6],msg[8],N),t2=HLP.multPowMod(G,msg[9],this.g2,msg[10],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[7],msg[8],N),N),!HLP.ZKP(5,msg[8],t1,t2))return this.abort();var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(6,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.QoQ=BigInt.divMod(this.q,msg[7],N),this.PoP=BigInt.divMod(this.p,msg[6],N),this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(7,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),this.smpstate=CONST.SMPSTATE_EXPECT4,send=HLP.packINT(8)+HLP.packMPIs([this.p,this.q,cP,d5,d6,this.r,cR,d7]),send=HLP.packTLV(4,send);break;case CONST.SMPSTATE_EXPECT3:if(HLP.debug.call(this,"smp tlv 4"),ms=HLP.readLen(msg.msg.substr(0,4)),8!==ms)return this.abort();if(msg=HLP.unpackMPIs(8,msg.msg.substring(4)),!HLP.checkGroup(msg[0],N_MINUS_2)||!HLP.checkGroup(msg[1],N_MINUS_2)||!HLP.checkGroup(msg[5],N_MINUS_2))return this.abort();if(t1=HLP.multPowMod(this.g3,msg[3],msg[0],msg[2],N),t2=HLP.multPowMod(G,msg[3],this.g2,msg[4],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[1],msg[2],N),N),!HLP.ZKP(6,msg[2],t1,t2))return this.abort();if(t3=HLP.multPowMod(G,msg[7],this.g3ao,msg[6],N),this.QoQ=BigInt.divMod(msg[1],this.q,N),t4=HLP.multPowMod(this.QoQ,msg[7],msg[5],msg[6],N),!HLP.ZKP(7,msg[6],t3,t4))return this.abort();this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(8,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),send=HLP.packINT(3)+HLP.packMPIs([this.r,cR,d7]),send=HLP.packTLV(5,send),rab=this.computeRab(msg[5]),trust=!!BigInt.equals(rab,BigInt.divMod(msg[0],this.p,N)),this.trigger("trust",[trust,"answered"]),this.init();break;case CONST.SMPSTATE_EXPECT4:return HLP.debug.call(this,"smp tlv 5"),ms=HLP.readLen(msg.msg.substr(0,4)),3!==ms?this.abort():(msg=HLP.unpackMPIs(3,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)?(t3=HLP.multPowMod(G,msg[2],this.g3ao,msg[1],N),t4=HLP.multPowMod(this.QoQ,msg[2],msg[0],msg[1],N),HLP.ZKP(8,msg[1],t3,t4)?(rab=this.computeRab(msg[0]),trust=!!BigInt.equals(rab,this.PoP),this.trigger("trust",[trust,"asked"]),void this.init()):this.abort()):this.abort())}this.sendMsg(send)},SM.prototype.sendMsg=function(send){this.trigger("send",[this.ssid,"\x00"+send])},SM.prototype.rcvSecret=function(secret,question){HLP.debug.call(this,"receive secret");var fn,our=!1;this.smpstate===CONST.SMPSTATE_EXPECT0?fn=this.answer:(fn=this.initiate,our=!0),this.makeSecret(our,secret),fn.call(this,question)},SM.prototype.answer=function(){HLP.debug.call(this,"smp answer");var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(5,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.smpstate=CONST.SMPSTATE_EXPECT3;var send=HLP.packINT(11)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,cP,d5,d6]);this.sendMsg(HLP.packTLV(3,send))},SM.prototype.initiate=function(question){HLP.debug.call(this,"smp initiate"),this.smpstate!==CONST.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var r2=HLP.randomExponent(),r3=HLP.randomExponent();this.c2=this.computeC(1,r2),this.c3=this.computeC(2,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.smpstate=CONST.SMPSTATE_EXPECT2;var send="",type=2;question&&(send+=question,send+="\x00",type=7),send+=HLP.packINT(6)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(HLP.packTLV(type,send))},SM.prototype.abort=function(){this.init(),this.sendMsg(HLP.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function OTRCB(cb){this.cb=cb}function OTR(options){if(!(this instanceof OTR))return new OTR(options);if(options=options||{},options.priv&&!(options.priv instanceof DSA))throw new Error("Requires long-lived DSA key.");if(this.priv=options.priv?options.priv:new DSA,this.fragment_size=options.fragment_size||0,this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");if(this.send_interval=options.send_interval||0,this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=options.instance_tag||OTR.makeInstanceTag(),this.debug=!!options.debug,this.smw=options.smw,this.init();var self=this;["sendMsg","receiveMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)}),EventEmitter.call(this)}var CryptoJS,BigInt,EventEmitter,Worker,SMWPath,CONST,HLP,Parse,AKE,SM,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=OTR,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),SMWPath=require("path").join(__dirname,"/sm-webworker.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),Parse=require("./parse.js"),AKE=require("./ake.js"),SM=require("./sm.js"),DSA=require("./dsa.js"),OTR.CONST=CONST):(Object.keys(root.OTR).forEach(function(k){OTR[k]=root.OTR[k]}),root.OTR=OTR,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,Worker=root.Worker,SMWPath="sm-webworker.js",CONST=OTR.CONST,HLP=OTR.HLP,Parse=OTR.Parse,AKE=OTR.AKE,SM=OTR.SM,DSA=root.DSA);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),MAX_INT=Math.pow(2,53)-1,MAX_UINT=Math.pow(2,31)-1;HLP.extend(OTR,EventEmitter),OTR.prototype.init=function(){this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.authstate=CONST.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,Parse.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\x00\x00\x00\x00",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},OTR.prototype._akeInit=function(){this.ake=new AKE(this),this.transmittedRS=!1,this.ssid=null},OTR.prototype._SMW=function(otr,reqs){this.otr=otr;var opts={path:SMWPath,seed:BigInt.getSeed};"object"==typeof otr.smw&&Object.keys(otr.smw).forEach(function(k){opts[k]=otr.smw[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker),this.worker=new Worker(opts.path);var self=this;this.worker.onmessage=function(e){var d=e.data;d&&self.trigger(d.method,d.args)},this.worker.postMessage({type:"seed",seed:opts.seed(),imports:opts.imports}),this.worker.postMessage({type:"init",reqs:reqs})},HLP.extend(OTR.prototype._SMW,EventEmitter),["handleSM","rcvSecret","abort"].forEach(function(m){OTR.prototype._SMW.prototype[m]=function(){this.worker.postMessage({type:"method",method:m,args:Array.prototype.slice.call(arguments,0)})}}),OTR.prototype._smInit=function(){var reqs={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,reqs)):this.sm=new SM(reqs);var self=this;["trust","abort","question"].forEach(function(e){self.sm.on(e,function(){self.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(ssid,send){self.ssid===ssid&&(send=self.prepareMsg(send),self.io(send))})},OTR.prototype.io=function(msg,meta){msg=[].concat(msg).map(function(m){return{msg:m,meta:meta}}),this.outgoing=this.outgoing.concat(msg);var self=this;!function send(first){if(!first){if(!self.outgoing.length)return;var elem=self.outgoing.shift(),cb=null;elem.meta instanceof OTRCB&&(cb=elem.meta.cb,elem.meta=null),self.trigger("io",[elem.msg,elem.meta]),cb&&cb()}setTimeout(send,first?0:self.send_interval)}(!0)},OTR.prototype.dh=function(){var keys={privateKey:BigInt.randBigInt(320)};return keys.publicKey=BigInt.powMod(G,keys.privateKey,N),keys},OTR.prototype.DHSession=function DHSession(our_dh,their_y){if(!(this instanceof DHSession))return new DHSession(our_dh,their_y);var s=BigInt.powMod(their_y,our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.id=HLP.mask(HLP.h2("\x00",secbytes),0,64);var sq=BigInt.greater(our_dh.publicKey,their_y),sendbyte=sq?"":"",rcvbyte=sq?"":"";this.sendenc=HLP.mask(HLP.h1(sendbyte,secbytes),0,128),this.sendmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(CryptoJS.enc.Latin1),this.rcvenc=HLP.mask(HLP.h1(rcvbyte,secbytes),0,128),this.rcvmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(CryptoJS.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=HLP.h2("ÿ",secbytes),this.send_counter=0,this.rcv_counter=0},OTR.prototype.rotateOurKeys=function(){var self=this;this.sessKeys[1].forEach(function(sk){sk&&sk.rcvmacused&&self.oldMacKeys.push(sk.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},OTR.prototype.rotateTheirKeys=function(their_y){this.their_keyid+=1;var self=this;this.sessKeys.forEach(function(sk){sk[1]&&sk[1].rcvmacused&&self.oldMacKeys.push(sk[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=their_y,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},OTR.prototype.prepareMsg=function(msg,esk){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||0===this.their_keyid)return this.notify("Not ready to encrypt.");var sessKeys=this.sessKeys[1][0];if(sessKeys.send_counter>=MAX_INT)return this.notify("Should have rekeyed by now.");sessKeys.send_counter+=1;var ctr=HLP.packCtr(sessKeys.send_counter),send=this.ake.otr_version+"",v3=this.ake.otr_version===CONST.OTR_VERSION_3;if(v3&&(send+=this.our_instance_tag,send+=this.their_instance_tag),send+="\x00",send+=HLP.packINT(this.our_keyid-1),send+=HLP.packINT(this.their_keyid),send+=HLP.packMPI(this.our_dh.publicKey),send+=ctr.substring(0,8),Math.ceil(msg.length/8)>=MAX_UINT)return this.notify("Message is too long.");var aes=HLP.encryptAes(CryptoJS.enc.Latin1.parse(msg),sessKeys.sendenc,ctr);return send+=HLP.packData(aes),send+=HLP.make1Mac(send,sessKeys.sendmac),send+=HLP.packData(this.oldMacKeys.splice(0).join("")),send=HLP.wrapMsg(send,this.fragment_size,v3,this.our_instance_tag,this.their_instance_tag),send[0]?this.notify(send[0]):(esk&&this.trigger("file",["send",sessKeys.extra_symkey,esk]),send[1])},OTR.prototype.handleDataMsg=function(msg){var vt=msg.version+msg.type;this.ake.otr_version===CONST.OTR_VERSION_3&&(vt+=msg.instance_tags);var types=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];msg=HLP.splitype(types,msg.msg);var ign=""===msg[0];if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||8!==msg.length)return void(ign||this.error("Received an unreadable encrypted message."));var our_keyid=this.our_keyid-HLP.readLen(msg[2]),their_keyid=this.their_keyid-HLP.readLen(msg[1]);if(0>our_keyid||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(0>their_keyid||their_keyid>1)return void(ign||this.error("Not of your latest keys."));var their_y=their_keyid?this.their_old_y:this.their_y;if(1===their_keyid&&!their_y)return void(ign||this.error("Do not have that key."));var sessKeys=this.sessKeys[our_keyid][their_keyid],ctr=HLP.unpackCtr(msg[4]);if(ctr<=sessKeys.rcv_counter)return void(ign||this.error("Counter in message is not larger."));sessKeys.rcv_counter=ctr,vt+=msg.slice(0,6).join("");var vmac=HLP.make1Mac(vt,sessKeys.rcvmac);if(!HLP.compare(msg[6],vmac))return void(ign||this.error("MACs do not match."));sessKeys.rcvmacused=!0;var out=HLP.decryptAes(msg[5].substring(4),sessKeys.rcvenc,HLP.padCtr(msg[4]));out=out.toString(CryptoJS.enc.Latin1),our_keyid||this.rotateOurKeys(),their_keyid||this.rotateTheirKeys(HLP.readMPI(msg[3]));var ind=out.indexOf("\x00");return~ind&&(this.handleTLVs(out.substring(ind+1),sessKeys),out=out.substring(0,ind)),out=CryptoJS.enc.Latin1.parse(out),out.toString(CryptoJS.enc.Utf8)},OTR.prototype.handleTLVs=function(tlvs,sessKeys){for(var type,len,msg;tlvs.length&&(type=HLP.unpackSHORT(tlvs.substr(0,2)),len=HLP.unpackSHORT(tlvs.substr(2,2)),msg=tlvs.substr(4,len),!(msg.length<len));){switch(type){case 1:this.msgstate=CONST.MSGSTATE_FINISHED,this.trigger("status",[CONST.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return void(this.sm&&this.sm.abort());this.sm||this._smInit(),this.sm.handleSM({msg:msg,type:type});break;case 8:msg=msg.substring(4),msg=CryptoJS.enc.Latin1.parse(msg),msg=msg.toString(CryptoJS.enc.Utf8),this.trigger("file",["receive",sessKeys.extra_symkey,msg])}tlvs=tlvs.substring(4+len)}},OTR.prototype.smpSecret=function(secret,question){return this.msgstate!==CONST.MSGSTATE_ENCRYPTED?this.notify("Must be encrypted for SMP."):"string"!=typeof secret||secret.length<1?this.notify("Secret is required."):(this.sm||this._smInit(),secret=CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1),question&&(question=CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)),void this.sm.rcvSecret(secret,question))},OTR.prototype.sendQueryMsg=function(){var versions={},msg=CONST.OTR_TAG;this.ALLOW_V2&&(versions[2]=!0),this.ALLOW_V3&&(versions[3]=!0);var vs=Object.keys(versions);vs.length&&(msg+="v",vs.forEach(function(v){"1"!==v&&(msg+=v)}),msg+="?"),this.io(msg),this.trigger("status",[CONST.STATUS_SEND_QUERY])},OTR.prototype.sendMsg=function(msg,meta){switch((this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&(msg=CryptoJS.enc.Utf8.parse(msg),msg=msg.toString(CryptoJS.enc.Latin1)),this.msgstate){case CONST.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION)return this.storedMgs.push({msg:msg,meta:meta}),void this.sendQueryMsg();this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(msg+=CONST.WHITESPACE_TAG,this.ALLOW_V3&&(msg+=CONST.WHITESPACE_TAG_V3),this.ALLOW_V2&&(msg+=CONST.WHITESPACE_TAG_V2));break;case CONST.MSGSTATE_FINISHED:return this.storedMgs.push({msg:msg,meta:meta}),void this.notify("Message cannot be sent at this time.","warn");case CONST.MSGSTATE_ENCRYPTED:msg=this.prepareMsg(msg);break;default:throw new Error("Unknown message state.")}msg&&this.io(msg,meta)},OTR.prototype.receiveMsg=function(msg,meta){if(msg=Parse.parseMsg(this,msg)){switch(msg.cls){case"error":return void this.notify(msg.msg);case"ake":return msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags)?void this.notify("Received a message intended for a different session.","warn"):void this.ake.handleAKE(msg);case"data":if(msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags))return void this.notify("Received a message intended for a different session.","warn");msg.msg=this.handleDataMsg(msg),msg.encrypted=!0;break;case"query":this.msgstate===CONST.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(msg);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&this.notify("Received an unencrypted message.","warn"),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&msg.ver.length>0&&this.doAKE(msg)}msg.msg&&this.trigger("ui",[msg.msg,!!msg.encrypted,meta])}},OTR.prototype.checkInstanceTags=function(it){var their_it=HLP.readLen(it.substr(0,4)),our_it=HLP.readLen(it.substr(4,4));if(our_it&&our_it!==HLP.readLen(this.our_instance_tag))return!0;if(HLP.readLen(this.their_instance_tag)){if(HLP.readLen(this.their_instance_tag)!==their_it)return!0}else{if(100>their_it)return!0;this.their_instance_tag=HLP.packINT(their_it)}},OTR.prototype.doAKE=function(msg){this.ALLOW_V3&&~msg.ver.indexOf(CONST.OTR_VERSION_3)?this.ake.initiateAKE(CONST.OTR_VERSION_3):this.ALLOW_V2&&~msg.ver.indexOf(CONST.OTR_VERSION_2)?this.ake.initiateAKE(CONST.OTR_VERSION_2):this.notify("OTR conversation requested, but no compatible protocol version found.","warn")},OTR.prototype.error=function(err){this.debug||(err="An OTR error has occurred."),this.io("?OTR Error:"+err),this.notify(err)},OTR.prototype.notify=function(err,severity){this.trigger("error",[err,severity||"error"])},OTR.prototype.sendStored=function(){var self=this;this.storedMgs.splice(0).forEach(function(elem){var msg=self.prepareMsg(elem.msg);self.io(msg,elem.meta)})},OTR.prototype.sendFile=function(filename){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return this.notify("Not ready to encrypt.");if(this.ake.otr_version!==CONST.OTR_VERSION_3)return this.notify("Protocol v3 required.");if(!filename)return this.notify("Please specify a filename.");var l1name=CryptoJS.enc.Utf8.parse(filename);if(l1name=l1name.toString(CryptoJS.enc.Latin1),l1name.length>=65532)return this.notify("Filename is too long.");var msg="\x00";msg+="\x00\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\x00\x00\x00",msg+=l1name,msg=this.prepareMsg(msg,filename),this.io(msg)},OTR.prototype.endOtr=function(cb){this.msgstate===CONST.MSGSTATE_ENCRYPTED&&("function"==typeof cb&&(cb=new OTRCB(cb)),this.sendMsg("\x00\x00\x00\x00",cb),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)),this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[CONST.STATUS_END_OTR])},OTR.makeInstanceTag=function(){var num=BigInt.randBigInt(32);return BigInt.greater(BigInt.str2bigInt("100",16),num)?OTR.makeInstanceTag():HLP.packINT(parseInt(BigInt.bigInt2str(num,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),/*!
* Source: lib/i18next/release/i18next-latest.min.js, license: MIT, url: http://i18next.com/
*/
diff --git a/build/lib/jsxc.dep.min.js.map b/build/lib/jsxc.dep.min.js.map
index 8a602adf..8d3c123f 100644
--- a/build/lib/jsxc.dep.min.js.map
+++ b/build/lib/jsxc.dep.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"jsxc.dep.min.js","sources":["jsxc.dep.js"],"names":["b64_sha1","s","binb2b64","core_sha1","str2binb","length","str_sha1","binb2str","b64_hmac_sha1","key","data","core_hmac_sha1","str_hmac_sha1","x","len","i","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","bkey","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","charCodeAt","String","fromCharCode","binarray","triplet","tab","charAt","Base64","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","isNaN","decode","replace","indexOf","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","Function","prototype","bind","func","this","_slice","slice","_concat","_args","call","arguments","apply","elt","from","Number","Math","ceil","floor","callback","$build","name","attrs","Strophe","Builder","$msg","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","value","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","toLowerCase","_xmlGenerator","_makeGenerator","doc","undefined","document","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","k","node","xmlTextNode","setAttribute","hasOwnProperty","xmlescape","text","createTextNode","xmlHtmlNode","html","window","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","attr","cssName","cssValue","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","log","debug","msg","info","warn","error","fatal","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","toString","up","parentNode","moreattrs","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","handler","ns","type","id","options","matchBare","user","isMatch","nsMatch","that","run","sourceURL","line","message","fileName","console","trace","lineNumber","stack","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","domain","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","_authentication","_idleTimeout","_disconnectTimeout","do_authentication","authenticated","disconnecting","connected","errors","paused","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","connect","pass","wait","hold","route","authzid","authcid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","xmlInput","xmlOutput","rawInput","rawOutput","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","typ","getElementsByTagName","newList","mechanisms","_connect_cb","_callback","bodyWrap","conncheck","sasl_scram_sha1","sasl_plain","sasl_digest_md5","sasl_anonymous","legacy_auth","hasFeatures","mech","matched","found_authentication","_no_auth_received","authenticate","higher","priority","swap","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","mechanism","isClientFirst","response","onChallenge","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","SASLAnonymous","SASLPlain","auth_str","SASLSHA1","test_cnonce","cnonce","random","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","SASLMD5","_quote","realm","host","qop","digest_uri","A1","A2","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","_buildBody","jQuery","trigger","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","parseInt","_sendTerminate","_hitError","reqStatus","xmpp:restart","_processRequest","time_elapsed","readyState","reqIs0","reqIs1","_removeRequest","_restartRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","open","sync","e2","sendFunc","customHeaders","headers","header","setRequestHeader","backoff","min","pow","abs","new_service","location","pathname","_buildStream","xmlns:stream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","ns_stream","namespaceURI","streamStart","string","_streamWrap","_onMessage","CLOSED","close","rawStanza","_removeClosingTag","search","firstChild","start","startString","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","parse","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","JSON","localStorage","getItem","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","isArray","makeArray","querySelector","setItem","stringify","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","buildIq","vCardEl","VCARD","get","set","error_rb","sessions","jid2session","ice_config","iceServers","pc_constraints","media_constraints","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","localStream","onJingle","find","action","ack","sess","peerjid","JingleSession","localStreams","initiate","setRemoteDescription","startmuted","accept","terminate","addIceCandidate","affected","addSource","removeSource","myjid","sendOffer","state","sendTerminate","active","terminateByJid","getStunAndTurnCredentials","res","iceservers","each","idx","dict","url","navigator","userAgent","username","credential","initiator","responder","isInitiator","peerconnection","remoteStream","localSDP","remoteSDP","relayedStreams","remoteStreams","startTime","stopTime","drip_container","usetrickle","usepranswer","usedrip","hadstuncandidate","hadturncandidate","lasticecandidate","statsinterval","addssrc","removessrc","pendingop","nickname","filter_candidates","RTCPeerconnection","onicecandidate","event","sendIceCandidate","candidate","onaddstream","stream","onremovestream","onsignalingstatechange","oniceconnectionstatechange","iceConnectionState","forEach","addStream","pranswer","localDescription","lines","SDPUtil","find_lines","sdp","find_line","prsdp","SDP","toJingle","source","setLocalDescription","RTCSessionDescription","clearInterval","ice","iceparams","media","sdpMLineIndex","session","jcand","candidateToJingle","sendIceCandidates","signalingState","candidates","cand","mid","cands","filter","creator","sdpMid","tmp","parse_fingerprint","required","fingerprint","createOffer","createdOffer","parse_icecandidate","desctype","fromJingle","remoteDescription","remotedesc","cobbled","iscomplete","mediapart","candidateFromJingle","RTCIceCandidate","sendAnswer","provisional","createAnswer","createdAnswer","jingle","getAudioTracks","track","enabled","getVideoTracks","term","ssrc","modifySources","modifiedAnswer","hardMuteVideo","muted","sendMute","sendRinging","getStats","interval","recv","audio","video","lost","lastrecv","lastlost","loss","delta","setInterval","stats","results","packetsrecv","stat","packetslost","shift","mangle","mline","rtpmap","newdesc","parse_mline","fmt","parse_rtpmap","build_mline","removeSessionLines","prefix","removeMediaLines","mediaindex","thecreator","semantics","bundle","substring","parse_mid","parse_fmtp","RtcpFbToJingle","crypto","parse_crypto","ssrclines","linessrc","kv","parse_ssrc","parse_extmap","uri","direction","senders","TransportToJingle","port","fingerprints","setup","payloadtype","parse_rtcpfb","params","subtype","RtcpFbFromJingle","group","contents","map","m","jingle2media","desc","build_iceufrag","build_icepwd","build_rtpmap","mediadesc","sessiondesc","ufrag","parse_iceufrag","pwd","parse_icepwd","frag","clockrate","channels","elems","foundation","component","ip","generation","tcptype","network","build_icecandidate","hasOwnAttribute","pt","haystack","needle","sessionpart","needles","setupRTC","getUserMediaWithConstraints","TraceablePeerConnection","constraints","mozGetUserMedia","mozRTCPeerConnection","webkitRTCPeerConnection","updateLog","maxstats","what","time","onnegotiationneeded","ondatachannel","names","endTime","values","times","dumpSDP","description","__defineGetter__","removeStream","createDataChannel","opts","successCallback","failureCallback","offer","answer","RTC","browser","getUserMedia","attachMediaStream","mozSrcObject","play","MediaStream","mozRTCSessionDescription","mozRTCIceCandidate","webkitGetUserMedia","webkitURL","createObjectURL","optional","DtlsSrtpKeyAgreement","webkitMediaStream","videoTracks","audioTracks","um","resolution","bandwidth","fps","chromeMediaSource","minWidth","minHeight","minAspectRatio","maxFrameRate","minFrameRate","root","factory","define","amd","module","exports","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","out","_generateBlock","_incrementCounter","getHexString","hex","bytes","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","msCrypto","require","BigInt","findPrimes","n","ans","millerRabin","mr_x1","dup","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","equals","squareMod_","bitSize","z","expand","int2bigInt","mod","mod_","trim","mult","mult_","powMod","sub","sub_","add","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","max","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","r","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","base","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","t2","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","pad","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","buf","getRandomValues","Uint8Array","CryptoJS","C","C_lib","lib","Base","extend","overrides","mixIn","$super","create","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","nBytes","C_enc","enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","decodeURIComponent","escape","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","_process","doFlush","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","offset","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","_map","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","M","_doCryptBlock","s1","s2","round","t0","t1","t3","W","SHA1","_hash","H","nBitsTotal","nBitsLeft","HmacSHA1","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","f","g","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","counter","_counter","keystream","EventEmitter","indexOfListener","listeners","listener","alias","getListeners","evt","events","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","on","addOnceListener","defineEvent","defineEvents","evts","removeListener","index","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","RegExp","removeEvent","_events","emitEvent","args","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","G","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","Ctor","constructor","Object","__super__","compare","str1","str2","randomExponent","smpHash","fmpi","smpi","sha256","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","v","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","sha1","h2","_toString","val","nex","packINT","packCtr","padCtr","ctr","unpackCtr","toByteArray","unpack","arr","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","reduce","prv","cur","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","B","l","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","prop","KEY_TYPE","ZERO","nocache","tokenizeStr","end","lastIndexOf","splt","es","parseLibotr","o","Worker","WWPath","__dirname","keys","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","sign","pk","parsePublic","fields","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","cb","path","seed","worker","postMessage","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","2","3","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","dh","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates",4,5,7,"question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","outgoing","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","method","_smInit","prepareMsg","meta","first","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","notify","aes","handleDataMsg","vt","types","ign","handleTLVs","tlvs","smpSecret","versions","vs","receiveMsg","doAKE","it","severity","sendFile","filename","l1name","endOtr","cache","jsonp","content-type","src","json","T","authBasic","Authorization","del","head","isAllowed","patch","post","put","P","fixLng","functions","namespaces","defaultNs","fallbackNS","fallbackLng","interpolationPrefixEscaped","regexEscape","interpolationPrefix","interpolationSuffixEscaped","interpolationSuffix","lng","detectLanguage","L","toLanguages","useCookie","cookie","read","cookieName","cookieExpirationTime","cookieDomain","detectLngFromLocalStorage","setCurrentLng","setJqueryExt","Deferred","resStore","preload","I","load","J","resolve","promise","deepExtend","keyseparator","dynamicLoad","resGetPath","getAsync","customLoad","_fetch","useLocalStorage","_storeLocal","defaultValueFromContent","defaultValue","prepend","append","selectorAttr","useDataAttrOptions","i18n","escapeInterpolation","regexReplacementEscape","postProcess","reusePrefix","maxRecursion","reuseSuffix","context","count","indefinite_article","A","D","sprintf","shortcutFunction","defaultVariables","nsseparator","sendMissing","missingKeyHandler","X","parseMissingKey","lngs","contextNotFound","pluralNotFound","needsPlural","pluralSuffix","indefiniteNotFound","indefiniteSuffix","E","returnObjectTrees","fallbackOnNull","objectTreeKeyHandler","fallbackOnEmpty","isFallbackLookup","fallbackToDefaultNS","lngWhitelist","detectLngQS","languages","userLanguage","language","lowerCaseLng","toUpperCase","TypeError","Zepto","O","_loadLocal","i18nStamp","localStorageExpirationTime","ajax","dataType","_fetchOne","postMissing","sendMissingTo","resPostPath","sendType","postAsync","reload","&","<",">","\"","'","/","R","setTime","toGMTString","S","getCountyIndexOfLng","applyReplacement","V",1,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,"rules","numbers","plurals","addRule","currentRule","rule","noAbs","Y","Z","toExponential","parseFloat","toFixed","exec","unshift","setLng","addResourceBundle","hasResourceBundle","addResource","addResources","removeResourceBundle","loadNamespace","loadNamespaces","setDefaultNamespace","translate","exists","pluralExtensions","addPostProcessor","I18next","de","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","your_message_wasnt_send_because_you_have_no_valid_subscription","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_started","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","your_buddy_is_attempting_to_determine_","to_authenticate_to_your_buddy","enter_the_answer_and_click_answer","enter_the_secret","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Message","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","Mute","Unmute","Subscription","both","online","chat","away","xa","offline","none","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","URL","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","NUMBER","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Your_roster_is_empty_add_a","new_buddy","is","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Do_you_want_to_display_them","Log_in_without_chat","has_come_online","Unknown_sender","You_received_a_message_from_an_unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Info","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Destroy","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","Reason","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Carbon_copy","Enable","en","fr","nds","pl","pt-BR","ro"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"jsxc.dep.min.js","sources":["jsxc.dep.js"],"names":["b64_sha1","s","binb2b64","core_sha1","str2binb","length","str_sha1","binb2str","b64_hmac_sha1","key","data","core_hmac_sha1","str_hmac_sha1","x","len","i","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","bkey","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","charCodeAt","String","fromCharCode","binarray","triplet","tab","charAt","Base64","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","isNaN","decode","replace","indexOf","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","Function","prototype","bind","func","this","_slice","slice","_concat","_args","call","arguments","apply","elt","from","Number","Math","ceil","floor","callback","$build","name","attrs","Strophe","Builder","$msg","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","value","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","toLowerCase","_xmlGenerator","_makeGenerator","doc","undefined","document","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","k","node","xmlTextNode","setAttribute","hasOwnProperty","xmlescape","text","createTextNode","xmlHtmlNode","html","window","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","attr","cssName","cssValue","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","log","debug","msg","info","warn","error","fatal","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","toString","up","parentNode","moreattrs","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","handler","ns","type","id","options","matchBare","user","isMatch","nsMatch","that","run","sourceURL","line","message","fileName","console","trace","lineNumber","stack","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","domain","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","_authentication","_idleTimeout","_disconnectTimeout","do_authentication","authenticated","disconnecting","connected","errors","paused","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","connect","pass","wait","hold","route","authzid","authcid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","xmlInput","xmlOutput","rawInput","rawOutput","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","typ","getElementsByTagName","newList","mechanisms","_connect_cb","_callback","bodyWrap","conncheck","sasl_scram_sha1","sasl_plain","sasl_digest_md5","sasl_anonymous","legacy_auth","hasFeatures","mech","matched","found_authentication","_no_auth_received","authenticate","higher","priority","swap","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","mechanism","isClientFirst","response","onChallenge","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","SASLAnonymous","SASLPlain","auth_str","SASLSHA1","test_cnonce","cnonce","random","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","SASLMD5","_quote","realm","host","qop","digest_uri","A1","A2","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","_buildBody","jQuery","trigger","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","parseInt","_sendTerminate","_hitError","reqStatus","xmpp:restart","_processRequest","time_elapsed","readyState","reqIs0","reqIs1","_removeRequest","_restartRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","open","sync","e2","sendFunc","customHeaders","headers","header","setRequestHeader","backoff","min","pow","abs","new_service","location","pathname","_buildStream","xmlns:stream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","ns_stream","namespaceURI","streamStart","string","_streamWrap","_onMessage","CLOSED","close","rawStanza","_removeClosingTag","search","firstChild","start","startString","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","parse","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","JSON","localStorage","getItem","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","isArray","makeArray","querySelector","setItem","stringify","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","buildIq","vCardEl","VCARD","get","set","error_rb","sessions","jid2session","ice_config","iceServers","pc_constraints","media_constraints","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","localStream","onJingle","find","action","ack","sess","peerjid","JingleSession","localStreams","initiate","setRemoteDescription","accept","terminate","addIceCandidate","affected","addSource","removeSource","myjid","sendOffer","state","sendTerminate","active","terminateByJid","getStunAndTurnCredentials","res","iceservers","each","idx","dict","url","username","credential","initiator","responder","isInitiator","peerconnection","remoteStream","localSDP","remoteSDP","relayedStreams","remoteStreams","startTime","stopTime","drip_container","usetrickle","usepranswer","usedrip","hadstuncandidate","hadturncandidate","lasticecandidate","statsinterval","addssrc","removessrc","pendingop","nickname","startmuted","filter_candidates","RTCPeerconnection","onicecandidate","event","sendIceCandidate","candidate","onaddstream","stream","onremovestream","onsignalingstatechange","oniceconnectionstatechange","iceConnectionState","forEach","addStream","pranswer","localDescription","lines","SDPUtil","find_lines","sdp","find_line","prsdp","SDP","toJingle","source","setLocalDescription","RTCSessionDescription","clearInterval","ice","iceparams","media","sdpMLineIndex","session","jcand","candidateToJingle","sendIceCandidates","signalingState","candidates","cand","mid","cands","filter","mline","parse_mline","creator","sdpMid","tmp","parse_fingerprint","required","fingerprint","createOffer","createdOffer","parse_icecandidate","desctype","fromJingle","remoteDescription","remotedesc","cobbled","iscomplete","mediapart","candidateFromJingle","RTCIceCandidate","sendAnswer","provisional","createAnswer","createdAnswer","jingle","getAudioTracks","track","enabled","getVideoTracks","term","ssrc","modifySources","modifiedAnswer","hardMuteVideo","muted","sendMute","sendRinging","getStats","interval","recv","audio","video","lost","lastrecv","lastlost","loss","delta","setInterval","stats","results","packetsrecv","stat","packetslost","shift","mangle","rtpmap","newdesc","fmt","parse_rtpmap","build_mline","removeSessionLines","prefix","removeMediaLines","mediaindex","thecreator","semantics","bundle","substring","parse_mid","parse_fmtp","RtcpFbToJingle","crypto","parse_crypto","ssrclines","linessrc","kv","parse_extmap","uri","direction","senders","TransportToJingle","port","fingerprints","setup","payloadtype","parse_rtcpfb","params","subtype","RtcpFbFromJingle","group","contents","map","m","jingle2media","desc","build_iceufrag","build_icepwd","build_rtpmap","mediadesc","sessiondesc","ufrag","parse_iceufrag","pwd","parse_icepwd","frag","clockrate","channels","elems","foundation","component","ip","generation","tcptype","network","build_icecandidate","hasOwnAttribute","parse_ssrc","pt","haystack","needle","sessionpart","needles","setupRTC","getUserMediaWithConstraints","TraceablePeerConnection","constraints","navigator","mozGetUserMedia","mozRTCPeerConnection","webkitRTCPeerConnection","updateLog","maxstats","what","time","onnegotiationneeded","ondatachannel","names","endTime","values","times","dumpSDP","description","prop","Object","defineProperty","removeStream","createDataChannel","opts","successCallback","failureCallback","offer","answer","RTC","userAgent","browser","getUserMedia","attachMediaStream","mozSrcObject","play","mozRTCSessionDescription","mozRTCIceCandidate","webkitGetUserMedia","webkitURL","createObjectURL","optional","DtlsSrtpKeyAgreement","um","resolution","bandwidth","fps","chromeMediaSource","minWidth","minHeight","maxFrameRate","maxWidth","maxHeight","minFrameRate","root","factory","define","amd","module","exports","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","out","_generateBlock","_incrementCounter","getHexString","hex","bytes","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","msCrypto","require","BigInt","findPrimes","n","ans","millerRabin","mr_x1","dup","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","equals","squareMod_","bitSize","z","expand","int2bigInt","mod","mod_","trim","mult","mult_","powMod","sub","sub_","add","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","max","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","r","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","base","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","t2","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","pad","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","buf","getRandomValues","Uint8Array","CryptoJS","C","C_lib","lib","Base","extend","overrides","mixIn","$super","create","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","nBytes","C_enc","enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","decodeURIComponent","escape","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","_process","doFlush","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","offset","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","_map","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","M","_doCryptBlock","s1","s2","round","t0","t1","t3","W","SHA1","_hash","H","nBitsTotal","nBitsLeft","HmacSHA1","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","f","g","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","counter","_counter","keystream","EventEmitter","indexOfListener","listeners","listener","alias","getListeners","evt","events","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","on","addOnceListener","defineEvent","defineEvents","evts","removeListener","index","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","RegExp","removeEvent","_events","emitEvent","args","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","G","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","Ctor","constructor","__super__","compare","str1","str2","randomExponent","smpHash","fmpi","smpi","sha256","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","v","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","sha1","h2","_toString","val","nex","packINT","packCtr","padCtr","ctr","unpackCtr","toByteArray","unpack","arr","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","reduce","prv","cur","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","B","l","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","end","lastIndexOf","splt","es","parseLibotr","o","Worker","WWPath","__dirname","keys","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","sign","pk","parsePublic","fields","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","cb","path","seed","worker","postMessage","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","2","3","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","dh","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates",4,5,7,"question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","outgoing","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","method","_smInit","prepareMsg","meta","first","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","notify","aes","handleDataMsg","vt","types","ign","handleTLVs","tlvs","smpSecret","versions","vs","receiveMsg","doAKE","it","severity","sendFile","filename","l1name","endOtr","cache","jsonp","content-type","src","json","T","authBasic","Authorization","del","head","isAllowed","patch","post","put","P","fixLng","functions","namespaces","defaultNs","fallbackNS","fallbackLng","interpolationPrefixEscaped","regexEscape","interpolationPrefix","interpolationSuffixEscaped","interpolationSuffix","lng","detectLanguage","L","toLanguages","useCookie","cookie","read","cookieName","cookieExpirationTime","cookieDomain","detectLngFromLocalStorage","setCurrentLng","setJqueryExt","Deferred","resStore","preload","I","load","J","resolve","promise","deepExtend","keyseparator","dynamicLoad","resGetPath","getAsync","customLoad","_fetch","useLocalStorage","_storeLocal","defaultValueFromContent","defaultValue","prepend","append","selectorAttr","useDataAttrOptions","i18n","escapeInterpolation","regexReplacementEscape","postProcess","reusePrefix","maxRecursion","reuseSuffix","context","count","indefinite_article","A","D","sprintf","shortcutFunction","defaultVariables","nsseparator","sendMissing","missingKeyHandler","X","parseMissingKey","lngs","contextNotFound","pluralNotFound","needsPlural","pluralSuffix","indefiniteNotFound","indefiniteSuffix","E","returnObjectTrees","fallbackOnNull","objectTreeKeyHandler","fallbackOnEmpty","isFallbackLookup","fallbackToDefaultNS","lngWhitelist","detectLngQS","languages","userLanguage","language","lowerCaseLng","toUpperCase","TypeError","Zepto","O","_loadLocal","i18nStamp","localStorageExpirationTime","ajax","dataType","_fetchOne","postMissing","sendMissingTo","resPostPath","sendType","postAsync","reload","&","<",">","\"","'","/","R","setTime","toGMTString","S","getCountyIndexOfLng","applyReplacement","V",1,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,"rules","numbers","plurals","addRule","currentRule","rule","noAbs","Y","Z","toExponential","parseFloat","toFixed","exec","unshift","setLng","addResourceBundle","hasResourceBundle","addResource","addResources","removeResourceBundle","loadNamespace","loadNamespaces","setDefaultNamespace","translate","exists","pluralExtensions","addPostProcessor","I18next","de","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","your_message_wasnt_send_because_you_have_no_valid_subscription","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_started","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","your_buddy_is_attempting_to_determine_","to_authenticate_to_your_buddy","enter_the_answer_and_click_answer","enter_the_secret","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Message","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","Mute","Unmute","Subscription","both","online","chat","away","xa","offline","none","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","URL","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","NUMBER","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Your_roster_is_empty_add_a","new_buddy","is","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Do_you_want_to_display_them","Log_in_without_chat","has_come_online","Unknown_sender","You_received_a_message_from_an_unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Info","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Destroy","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","Reason","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Carbon_copy","Enable","en","fr","nds","pl","pt-BR","ro"],"mappings":"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"} \ No newline at end of file
diff --git a/build/lib/otr/build/dep/bigint.js b/build/lib/otr/build/dep/bigint.js
index b7271dad..6d82d935 100644
--- a/build/lib/otr/build/dep/bigint.js
+++ b/build/lib/otr/build/dep/bigint.js
@@ -5,7 +5,11 @@
} else if (typeof module !== 'undefined' && module.exports) {
module.exports = factory(require('crypto'))
} else {
- root.BigInt = factory(root.crypto || root.msCrypto)
+ try {
+ root.BigInt = factory(root.crypto || root.msCrypto)
+ } catch(e) {
+ console.warn(e.message);
+ }
}
}(this, function (crypto) {
diff --git a/build/lib/otr/build/otr.js b/build/lib/otr/build/otr.js
index c2d32262..c4adabe7 100644
--- a/build/lib/otr/build/otr.js
+++ b/build/lib/otr/build/otr.js
@@ -29,7 +29,9 @@
} else {
root.OTR = {}
root.DSA = {}
- factory.call(root)
+ if (typeof root.BigInt !== 'undefined') {
+ factory.call(root)
+ }
}
}(this, function () {
diff --git a/build/lib/strophe.caps.js b/build/lib/strophe.caps.js
index 7acd9d93..89cd42a0 100644
--- a/build/lib/strophe.caps.js
+++ b/build/lib/strophe.caps.js
@@ -267,4 +267,4 @@
return 0;
}
});
-}(jQuery)); \ No newline at end of file
+}(jQuery));
diff --git a/build/lib/strophe.jingle/strophe.jingle.adapter.js b/build/lib/strophe.jingle/strophe.jingle.adapter.js
index 6c2ce240..4c1c9e4e 100644
--- a/build/lib/strophe.jingle/strophe.jingle.adapter.js
+++ b/build/lib/strophe.jingle/strophe.jingle.adapter.js
@@ -68,7 +68,7 @@ TraceablePeerConnection = function(ice_config, constraints) {
if (self.ondatachannel !== null) {
self.ondatachannel(event);
}
- }
+ };
if (!navigator.mozGetUserMedia) {
this.statsinterval = window.setInterval(function() {
self.peerconnection.getStats(function(stats) {
@@ -99,18 +99,19 @@ TraceablePeerConnection = function(ice_config, constraints) {
}, 1000);
}
-};
+}
dumpSDP = function(description) {
return 'type: ' + description.type + '\r\n' + description.sdp;
-}
+};
-if (TraceablePeerConnection.prototype.__defineGetter__ !== undefined) {
- TraceablePeerConnection.prototype.__defineGetter__('signalingState', function() { return this.peerconnection.signalingState; });
- TraceablePeerConnection.prototype.__defineGetter__('iceConnectionState', function() { return this.peerconnection.iceConnectionState; });
- TraceablePeerConnection.prototype.__defineGetter__('localDescription', function() { return this.peerconnection.localDescription; });
- TraceablePeerConnection.prototype.__defineGetter__('remoteDescription', function() { return this.peerconnection.remoteDescription; });
-}
+['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
+ Object.defineProperty(TraceablePeerConnection.prototype, prop, {
+ get: function () {
+ return this.peerconnection[prop]
+ }
+ });
+});
TraceablePeerConnection.prototype.addStream = function (stream) {
this.trace('addStream', stream.id);
@@ -125,7 +126,7 @@ TraceablePeerConnection.prototype.removeStream = function (stream) {
TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
this.trace('createDataChannel', label, opts);
this.peerconnection.createDataChannel(label, opts);
-}
+};
TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
var self = this;
@@ -212,21 +213,19 @@ TraceablePeerConnection.prototype.addIceCandidate = function (candidate, success
var self = this;
this.trace('addIceCandidate', JSON.stringify(candidate, null, ' '));
this.peerconnection.addIceCandidate(candidate);
- /* maybe later
this.peerconnection.addIceCandidate(candidate,
function () {
self.trace('addIceCandidateOnSuccess');
- successCallback();
+ if (successCallback) successCallback();
},
function (err) {
self.trace('addIceCandidateOnFailure', err);
- failureCallback(err);
+ if (failureCallback) failureCallback(err);
}
);
- */
};
-TraceablePeerConnection.prototype.getStats = function(callback, errback) {
+TraceablePeerConnection.prototype.getStats = function(callback) {
if (navigator.mozGetUserMedia) {
// ignore for now...
} else {
@@ -237,9 +236,9 @@ TraceablePeerConnection.prototype.getStats = function(callback, errback) {
// mozilla chrome compat layer -- very similar to adapter.js
setupRTC = function (){
var RTC = null;
- if (navigator.mozGetUserMedia) {
+ if (navigator.mozGetUserMedia && mozRTCPeerConnection) {
console.log('This appears to be Firefox');
- var version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
+ var version = navigator.userAgent.match(/Firefox/) ? parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10) : 0;
if (version >= 22) {
RTC = {
peerconnection: mozRTCPeerConnection,
@@ -251,10 +250,6 @@ setupRTC = function (){
},
pc_constraints: {}
};
- if (!MediaStream.prototype.getVideoTracks)
- MediaStream.prototype.getVideoTracks = function () { return []; };
- if (!MediaStream.prototype.getAudioTracks)
- MediaStream.prototype.getAudioTracks = function () { return []; };
RTCSessionDescription = mozRTCSessionDescription;
RTCIceCandidate = mozRTCIceCandidate;
}
@@ -270,19 +265,6 @@ setupRTC = function (){
// DTLS should now be enabled by default but..
pc_constraints: {'optional': [{'DtlsSrtpKeyAgreement': 'true'}]}
};
- if (navigator.userAgent.indexOf('Android') != -1) {
- RTC.pc_constraints = {}; // disable DTLS on Android
- }
- if (!webkitMediaStream.prototype.getVideoTracks) {
- webkitMediaStream.prototype.getVideoTracks = function () {
- return this.videoTracks;
- };
- }
- if (!webkitMediaStream.prototype.getAudioTracks) {
- webkitMediaStream.prototype.getAudioTracks = function () {
- return this.audioTracks;
- };
- }
}
if (RTC === null) {
try { console.log('Browser does not appear to be WebRTC-capable'); } catch (e) { }
@@ -317,23 +299,19 @@ getUserMediaWithConstraints = function(um, resolution, bandwidth, fps) {
case 'fullhd':
constraints.video.mandatory.minWidth = 1920;
constraints.video.mandatory.minHeight = 1080;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '720':
case 'hd':
constraints.video.mandatory.minWidth = 1280;
constraints.video.mandatory.minHeight = 720;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '360':
constraints.video.mandatory.minWidth = 640;
constraints.video.mandatory.minHeight = 360;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
case '180':
constraints.video.mandatory.minWidth = 320;
constraints.video.mandatory.minHeight = 180;
- constraints.video.mandatory.minAspectRatio = 1.77;
break;
// 4:3
case '960':
@@ -358,6 +336,10 @@ getUserMediaWithConstraints = function(um, resolution, bandwidth, fps) {
break;
}
+ // take what is configured and try not to be more intelligent
+ if (constraints.video.minWidth) constraints.video.maxWidth = constraints.video.minWidth;
+ if (constraints.video.minHeight) constraints.video.maxHeight = constraints.video.minHeight;
+
if (bandwidth) { // doesn't work currently, see webrtc issue 1846
if (!constraints.video) constraints.video = {mandatory: {}};//same behaviour as true
constraints.video.optional = [{bandwidth: bandwidth}];
diff --git a/build/lib/strophe.jingle/strophe.jingle.js b/build/lib/strophe.jingle/strophe.jingle.js
index 6b652587..0a0cdd77 100644
--- a/build/lib/strophe.jingle/strophe.jingle.js
+++ b/build/lib/strophe.jingle/strophe.jingle.js
@@ -44,7 +44,6 @@ Strophe.addConnectionPlugin('jingle', {
to: iq.getAttribute('from'),
id: iq.getAttribute('id')
});
- console.log('on jingle ' + action);
var sess = this.sessions[sid];
if ('session-initiate' != action) {
if (sess === null) {
@@ -93,11 +92,6 @@ Strophe.addConnectionPlugin('jingle', {
sess.initiate($(iq).attr('from'), false);
sess.setRemoteDescription($(iq).find('>jingle'), 'offer');
- if ($(iq).find('>jingle>muted[xmlns="http://jitsi.org/protocol/meet#startmuted"]').length) {
- console.log('got a request to start muted');
- sess.startmuted = true;
- }
-
this.sessions[sess.sid] = sess;
this.jid2session[sess.peerjid] = sess;
@@ -112,7 +106,6 @@ Strophe.addConnectionPlugin('jingle', {
$(document).trigger('callaccepted.jingle', [sess.sid]);
break;
case 'session-terminate':
- console.log('terminating...');
sess.terminate();
this.terminate(sess.sid);
if ($(iq).find('>jingle>reason').length) {
@@ -194,7 +187,6 @@ Strophe.addConnectionPlugin('jingle', {
var sess = this.jid2session[jid];
if (sess) {
sess.terminate();
- console.log('peer went away silently', jid);
delete this.sessions[sess.sid];
delete this.jid2session[jid];
$(document).trigger('callterminated.jingle', [sess.sid, 'gone']);
@@ -232,12 +224,8 @@ Strophe.addConnectionPlugin('jingle', {
break;
case 'turn':
dict.url = 'turn:';
- if (el.attr('username')) { // https://code.google.com/p/webrtc/issues/detail?id=1508
- if (navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10) < 28) {
- dict.url += el.attr('username') + '@';
- } else {
- dict.username = el.attr('username'); // only works in M28
- }
+ if (el.attr('username')) {
+ dict.username = el.attr('username');
}
dict.url += el.attr('host');
if (el.attr('port') && el.attr('port') != '3478') {
diff --git a/build/lib/strophe.jingle/strophe.jingle.sdp.js b/build/lib/strophe.jingle/strophe.jingle.sdp.js
index 140a52a5..e5fcb940 100644
--- a/build/lib/strophe.jingle/strophe.jingle.sdp.js
+++ b/build/lib/strophe.jingle/strophe.jingle.sdp.js
@@ -52,7 +52,8 @@ SDP.prototype.removeSessionLines = function(prefix) {
});
this.raw = this.session + this.media.join('');
return lines;
-}
+};
+
// remove lines matching prefix from a media section specified by mediaindex
// TODO: non-numeric mediaindex could match mid
SDP.prototype.removeMediaLines = function(mediaindex, prefix) {
@@ -63,7 +64,7 @@ SDP.prototype.removeMediaLines = function(mediaindex, prefix) {
});
this.raw = this.session + this.media.join('');
return lines;
-}
+};
// add content's to a jingle element
SDP.prototype.toJingle = function (elem, thecreator) {
@@ -104,12 +105,6 @@ SDP.prototype.toJingle = function (elem, thecreator) {
// prefer identifier from a=mid if present
var mid = SDPUtil.parse_mid(SDPUtil.find_line(this.media[i], 'a=mid:'));
elem.attrs({ name: mid });
-
- // old BUNDLE plan, to be removed
- if (bundle.indexOf(mid) != -1) {
- elem.c('bundle', {xmlns: 'http://estos.de/ns/bundle'}).up();
- bundle.splice(bundle.indexOf(mid), 1);
- }
}
if (SDPUtil.find_line(this.media[i], 'a=rtpmap:').length) {
elem.c('description',
@@ -165,12 +160,6 @@ SDP.prototype.toJingle = function (elem, thecreator) {
elem.up();
});
elem.up();
-
- // old proprietary mapping, to be removed at some point
- tmp = SDPUtil.parse_ssrc(this.media[i]);
- tmp.xmlns = 'http://estos.de/ns/ssrc';
- tmp.ssrc = ssrc;
- elem.c('ssrc', tmp).up(); // ssrc is part of description
}
if (SDPUtil.find_line(this.media[i], 'a=rtcp-mux')) {
@@ -267,7 +256,7 @@ SDP.prototype.TransportToJingle = function (mediaindex, elem) {
}
}
elem.up(); // end of transport
-}
+};
SDP.prototype.RtcpFbToJingle = function (mediaindex, elem, payloadtype) { // XEP-0293
var lines = SDPUtil.find_lines(this.media[mediaindex], 'a=rtcp-fb:' + payloadtype);
@@ -340,7 +329,6 @@ SDP.prototype.fromJingle = function (jingle) {
// for backward compability, to be removed soon
// assume all contents are in the same bundle group, can be improved upon later
var bundle = $(jingle).find('>content').filter(function (idx, content) {
- //elem.c('bundle', {xmlns:'http://estos.de/ns/bundle'});
return $(content).find('>bundle').length > 0;
}).map(function (idx, content) {
return content.getAttribute('name');
@@ -476,17 +464,6 @@ SDP.prototype.jingle2media = function (content) {
media += '\r\n';
});
});
-
- if (tmp.length === 0) {
- // fallback to proprietary mapping of a=ssrc lines
- tmp = content.find('description>ssrc[xmlns="http://estos.de/ns/ssrc"]');
- if (tmp.length) {
- media += 'a=ssrc:' + ssrc + ' cname:' + tmp.attr('cname') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' msid:' + tmp.attr('msid') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' mslabel:' + tmp.attr('mslabel') + '\r\n';
- media += 'a=ssrc:' + ssrc + ' label:' + tmp.attr('label') + '\r\n';
- }
- }
return media;
};
@@ -728,8 +705,6 @@ SDPUtil = {
return needles;
},
candidateToJingle: function (line) {
- // a=candidate:2979166662 1 udp 2113937151 192.168.2.100 57698 typ host generation 0
- // <candidate component=... foundation=... generation=... id=... ip=... network=... port=... priority=... protocol=... type=.../>
if (line.indexOf('candidate:') === 0) {
line = 'a=' + line;
} else if (line.substring(0, 12) != 'a=candidate:') {
@@ -755,8 +730,7 @@ SDPUtil = {
candidate.port = elems[5];
// elems[6] => "typ"
candidate.type = elems[7];
-
- candidate.generation = '0'; // fippo from jitsi-meet: default, may be overwritten below
+ candidate.generation = '0';
for (i = 8; i < elems.length; i += 2) {
switch (elems[i]) {
@@ -781,42 +755,31 @@ SDPUtil = {
return candidate;
},
candidateFromJingle: function (cand) {
- var line = 'a=candidate:';
- line += cand.getAttribute('foundation');
- line += ' ';
- line += cand.getAttribute('component');
- line += ' ';
- line += cand.getAttribute('protocol'); //.toUpperCase(); // chrome M23 doesn't like this
- line += ' ';
- line += cand.getAttribute('priority');
- line += ' ';
- line += cand.getAttribute('ip');
- line += ' ';
- line += cand.getAttribute('port');
- line += ' ';
- line += 'typ';
- line += ' ' + cand.getAttribute('type');
- line += ' ';
+ var parts = [
+ 'a=candidate:' + cand.getAttribute('foundation'),
+ cand.getAttribute('component'),
+ cand.getAttribute('protocol'),
+ cand.getAttribute('priority'),
+ cand.getAttribute('ip'),
+ cand.getAttribute('port'),
+ 'typ',
+ cand.getAttribute('type')
+ ];
switch (cand.getAttribute('type')) {
case 'srflx':
case 'prflx':
case 'relay':
if (cand.getAttribute('rel-addr') && cand.getAttribute('rel-port')) {
- line += 'raddr';
- line += ' ';
- line += cand.getAttribute('rel-addr');
- line += ' ';
- line += 'rport';
- line += ' ';
- line += cand.getAttribute('rel-port');
- line += ' ';
+ parts.push('raddr');
+ parts.push(cand.getAttribute('rel-addr'));
+ parts.push('rport');
+ parts.push(cand.getAttribute('rel-port'));
}
break;
}
- line += 'generation';
- line += ' ';
- line += cand.getAttribute('generation') || '0';
- return line + '\r\n';
+ parts.push('generation');
+ parts.push(cand.getAttribute('generation') || '0');
+ return parts.join(' ') + '\r\n';
}
};
}(jQuery));
diff --git a/build/lib/strophe.jingle/strophe.jingle.session.js b/build/lib/strophe.jingle/strophe.jingle.session.js
index e5ee6e08..b53f071c 100644
--- a/build/lib/strophe.jingle/strophe.jingle.session.js
+++ b/build/lib/strophe.jingle/strophe.jingle.session.js
@@ -222,11 +222,11 @@ JingleSession.prototype.sendIceCandidate = function (candidate) {
}, 20);
}
- this.drip_container.push(event.candidate);
+ this.drip_container.push(candidate);
return;
} else {
console.log('sending single candidate');
- self.sendIceCandidates([event.candidate]);
+ self.sendIceCandidates([candidate]);
}
}
}
@@ -240,7 +240,7 @@ JingleSession.prototype.sendIceCandidate = function (candidate) {
action: this.peerconnection.localDescription.type == 'offer' ? 'session-initiate' : 'session-accept',
initiator: this.initiator,
sid: this.sid});
- if (this.nickname != null) {
+ if (this.nickname !== null) {
init.c('nick', {xmlns:'http://jabber.org/protocol/nick'}).t(this.nickname).up();
}
if (this.startmuted) {
@@ -288,11 +288,12 @@ JingleSession.prototype.sendIceCandidates = function (candidates) {
sid: this.sid});
for (var mid = 0; mid < this.localSDP.media.length; mid++) {
var cands = candidates.filter(function (el) { return el.sdpMLineIndex == mid; });
+ var mline = SDPUtil.parse_mline(this.localSDP.media[mid].split('\r\n')[0]);
if (cands.length > 0) {
var ice = SDPUtil.iceparams(this.localSDP.media[mid], this.localSDP.session);
ice.xmlns = 'urn:xmpp:jingle:transports:ice-udp:1';
cand.c('content', {creator: this.initiator == this.me ? 'initiator' : 'responder',
- name: cands[0].sdpMid
+ name: (cands[0].sdpMid? cands[0].sdpMid : mline.media)
}).c('transport', ice);
for (var i = 0; i < cands.length; i++) {
cand.c('candidate', SDPUtil.candidateToJingle(cands[i].candidate)).up();
@@ -357,7 +358,7 @@ JingleSession.prototype.createdOffer = function (sdp) {
action: 'session-initiate',
initiator: this.initiator,
sid: this.sid});
- if (this.nickname != null) {
+ if (this.nickname !== null) {
init.c('nick', {xmlns:'http://jabber.org/protocol/nick'}).t(this.nickname).up();
}
if (this.startmuted) {
diff --git a/doc/global.html b/doc/global.html
index 310c3233..4a2005ce 100644
--- a/doc/global.html
+++ b/doc/global.html
@@ -182,7 +182,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line153">line 153</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line159">line 159</a>
</li></ul></dd>
@@ -227,7 +227,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/index.html b/doc/index.html
index 1d01ae32..e5099c3b 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -54,7 +54,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.dialog.html b/doc/jsxc.gui.dialog.html
index 8ea39b2f..535df6f5 100644
--- a/doc/jsxc.gui.dialog.html
+++ b/doc/jsxc.gui.dialog.html
@@ -66,7 +66,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1576">line 1576</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1596">line 1596</a>
</li></ul></dd>
@@ -141,7 +141,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1642">line 1642</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1688">line 1688</a>
</li></ul></dd>
@@ -361,7 +361,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1591">line 1591</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1611">line 1611</a>
</li></ul></dd>
@@ -500,7 +500,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1652">line 1652</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1698">line 1698</a>
</li></ul></dd>
@@ -547,7 +547,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.html b/doc/jsxc.gui.html
index 019a7d98..3f181f12 100644
--- a/doc/jsxc.gui.html
+++ b/doc/jsxc.gui.html
@@ -289,7 +289,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1021">line 1021</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1038">line 1038</a>
</li></ul></dd>
@@ -401,7 +401,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1095">line 1095</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1112">line 1112</a>
</li></ul></dd>
@@ -721,7 +721,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1080">line 1080</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1097">line 1097</a>
</li></ul></dd>
@@ -902,7 +902,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line712">line 712</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line729">line 729</a>
</li></ul></dd>
@@ -1019,7 +1019,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line660">line 660</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line677">line 677</a>
</li></ul></dd>
@@ -1154,7 +1154,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line508">line 508</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line525">line 525</a>
</li></ul></dd>
@@ -1223,7 +1223,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line669">line 669</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line686">line 686</a>
</li></ul></dd>
@@ -1404,7 +1404,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line693">line 693</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line710">line 710</a>
</li></ul></dd>
@@ -1551,7 +1551,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line546">line 546</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line563">line 563</a>
</li></ul></dd>
@@ -1620,7 +1620,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line725">line 725</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line742">line 742</a>
</li></ul></dd>
@@ -1737,7 +1737,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line389">line 389</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line406">line 406</a>
</li></ul></dd>
@@ -1923,7 +1923,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line620">line 620</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line637">line 637</a>
</li></ul></dd>
@@ -2010,7 +2010,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line966">line 966</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line983">line 983</a>
</li></ul></dd>
@@ -2127,7 +2127,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line753">line 753</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line770">line 770</a>
</li></ul></dd>
@@ -2244,7 +2244,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line398">line 398</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line415">line 415</a>
</li></ul></dd>
@@ -2313,7 +2313,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line837">line 837</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line839">line 839</a>
</li></ul></dd>
@@ -2430,7 +2430,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line648">line 648</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line665">line 665</a>
</li></ul></dd>
@@ -2746,7 +2746,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1067">line 1067</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1084">line 1084</a>
</li></ul></dd>
@@ -3161,7 +3161,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1043">line 1043</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1060">line 1060</a>
</li></ul></dd>
@@ -3277,7 +3277,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.queryActions.html b/doc/jsxc.gui.queryActions.html
index 1fb873dc..35a8c706 100644
--- a/doc/jsxc.gui.queryActions.html
+++ b/doc/jsxc.gui.queryActions.html
@@ -395,7 +395,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.roster.html b/doc/jsxc.gui.roster.html
index 38d05846..6d56ae70 100644
--- a/doc/jsxc.gui.roster.html
+++ b/doc/jsxc.gui.roster.html
@@ -66,7 +66,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1197">line 1197</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1214">line 1214</a>
</li></ul></dd>
@@ -98,6 +98,60 @@
<dl>
<dt>
+ <h4 class="name" id="loaded"><span class="type-signature">&lt;static> </span>loaded<span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+ <div class="description">
+ True if all items are loaded
+ </div>
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1225">line 1225</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+</dd>
+
+
+
+<dt>
<h4 class="name" id="ready"><span class="type-signature">&lt;static> </span>ready<span class="type-signature"></span></h4>
@@ -134,7 +188,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1205">line 1205</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1222">line 1222</a>
</li></ul></dd>
@@ -270,7 +324,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1496">line 1496</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1516">line 1516</a>
</li></ul></dd>
@@ -405,7 +459,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1320">line 1320</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1340">line 1340</a>
</li></ul></dd>
@@ -474,7 +528,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1562">line 1562</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1582">line 1582</a>
</li></ul></dd>
@@ -543,7 +597,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1213">line 1213</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1233">line 1233</a>
</li></ul></dd>
@@ -702,7 +756,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1383">line 1383</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1403">line 1403</a>
</li></ul></dd>
@@ -789,7 +843,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1547">line 1547</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1567">line 1567</a>
</li></ul></dd>
@@ -906,7 +960,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1435">line 1435</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1455">line 1455</a>
</li></ul></dd>
@@ -1023,7 +1077,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1426">line 1426</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1446">line 1446</a>
</li></ul></dd>
@@ -1162,7 +1216,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1456">line 1456</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1476">line 1476</a>
</li></ul></dd>
@@ -1297,7 +1351,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1416">line 1416</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1436">line 1436</a>
</li></ul></dd>
@@ -1432,7 +1486,7 @@ alphabetical of the name
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1522">line 1522</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1542">line 1542</a>
</li></ul></dd>
@@ -1479,7 +1533,7 @@ alphabetical of the name
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.template.html b/doc/jsxc.gui.template.html
index bd6fb525..97a93247 100644
--- a/doc/jsxc.gui.template.html
+++ b/doc/jsxc.gui.template.html
@@ -66,7 +66,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2242">line 2242</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2288">line 2288</a>
</li></ul></dd>
@@ -115,7 +115,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.gui.window.html b/doc/jsxc.gui.window.html
index 0cccd422..aeff1f73 100644
--- a/doc/jsxc.gui.window.html
+++ b/doc/jsxc.gui.window.html
@@ -66,7 +66,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1664">line 1664</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1710">line 1710</a>
</li></ul></dd>
@@ -189,7 +189,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1906">line 1906</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1952">line 1952</a>
</li></ul></dd>
@@ -306,7 +306,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1986">line 1986</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2032">line 2032</a>
</li></ul></dd>
@@ -470,7 +470,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2090">line 2090</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2136">line 2136</a>
</li></ul></dd>
@@ -587,7 +587,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1954">line 1954</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2000">line 2000</a>
</li></ul></dd>
@@ -722,7 +722,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2236">line 2236</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2282">line 2282</a>
</li></ul></dd>
@@ -857,7 +857,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1881">line 1881</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1927">line 1927</a>
</li></ul></dd>
@@ -974,7 +974,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1837">line 1837</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1883">line 1883</a>
</li></ul></dd>
@@ -1113,7 +1113,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1975">line 1975</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2021">line 2021</a>
</li></ul></dd>
@@ -1230,7 +1230,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1997">line 1997</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2043">line 2043</a>
</li></ul></dd>
@@ -1347,7 +1347,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1677">line 1677</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1723">line 1723</a>
</li></ul></dd>
@@ -1487,7 +1487,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1848">line 1848</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1894">line 1894</a>
</li></ul></dd>
@@ -1839,7 +1839,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2039">line 2039</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2085">line 2085</a>
</li></ul></dd>
@@ -1956,7 +1956,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2221">line 2221</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2267">line 2267</a>
</li></ul></dd>
@@ -2091,7 +2091,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2012">line 2012</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2058">line 2058</a>
</li></ul></dd>
@@ -2231,7 +2231,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2211">line 2211</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2257">line 2257</a>
</li></ul></dd>
@@ -2366,7 +2366,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1941">line 1941</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1987">line 1987</a>
</li></ul></dd>
@@ -2483,7 +2483,7 @@ created.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1919">line 1919</a>
+ <a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1965">line 1965</a>
</li></ul></dd>
@@ -2530,7 +2530,7 @@ created.
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.html b/doc/jsxc.html
index 33b03b68..e88b5154 100644
--- a/doc/jsxc.html
+++ b/doc/jsxc.html
@@ -1252,7 +1252,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line435">line 435</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line444">line 444</a>
</li></ul></dd>
@@ -1321,7 +1321,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line480">line 480</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line489">line 489</a>
</li></ul></dd>
@@ -1601,7 +1601,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line538">line 538</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line547">line 547</a>
</li></ul></dd>
@@ -1828,7 +1828,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line640">line 640</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line650">line 650</a>
</li></ul></dd>
@@ -1968,7 +1968,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line735">line 735</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line745">line 745</a>
</li></ul></dd>
@@ -2174,7 +2174,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line711">line 711</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line721">line 721</a>
</li></ul></dd>
@@ -2313,7 +2313,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line755">line 755</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line765">line 765</a>
</li></ul></dd>
@@ -2521,7 +2521,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line683">line 683</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line693">line 693</a>
</li></ul></dd>
@@ -2655,7 +2655,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line563">line 563</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line572">line 572</a>
</li></ul></dd>
@@ -2782,7 +2782,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line548">line 548</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line557">line 557</a>
</li></ul></dd>
@@ -2873,7 +2873,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line497">line 497</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line506">line 506</a>
</li></ul></dd>
@@ -2943,7 +2943,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line509">line 509</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line518">line 518</a>
</li></ul></dd>
@@ -3012,7 +3012,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line409">line 409</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line418">line 418</a>
</li></ul></dd>
@@ -3081,7 +3081,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line394">line 394</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line403">line 403</a>
</li></ul></dd>
@@ -3150,7 +3150,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line338">line 338</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line342">line 342</a>
</li></ul></dd>
@@ -3277,7 +3277,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line528">line 528</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line537">line 537</a>
</li></ul></dd>
@@ -3411,7 +3411,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line652">line 652</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line662">line 662</a>
</li></ul></dd>
@@ -3490,7 +3490,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line570">line 570</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line579">line 579</a>
</li></ul></dd>
@@ -3559,7 +3559,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line591">line 591</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line601">line 601</a>
</li></ul></dd>
@@ -3628,7 +3628,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line490">line 490</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line499">line 499</a>
</li></ul></dd>
@@ -3697,7 +3697,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line621">line 621</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line631">line 631</a>
</li></ul></dd>
@@ -3837,7 +3837,7 @@ normal signal
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line663">line 663</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line673">line 673</a>
</li></ul></dd>
@@ -4046,7 +4046,7 @@ normal signal
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.gui.js.html b/doc/jsxc.lib.gui.js.html
index bfbd4bd9..e902e412 100644
--- a/doc/jsxc.lib.gui.js.html
+++ b/doc/jsxc.lib.gui.js.html
@@ -385,27 +385,44 @@ jsxc.gui = {
jsxc.gui.dialog.open(jsxc.gui.template.get('loginBox'));
- $('#jsxc_dialog').find('form').submit(function() {
+ var alert = $('#jsxc_dialog').find('.jsxc_alert');
+ alert.hide();
- $(this).find('input[type=submit]').prop('disabled', true);
+ $('#jsxc_dialog').find('form').submit(function(ev) {
+
+ ev.preventDefault();
+
+ $(this).find('button[data-jsxc-loading-text]').trigger('btnloading.jsxc');
jsxc.options.loginForm.form = $(this);
jsxc.options.loginForm.jid = $(this).find('#jsxc_username');
jsxc.options.loginForm.pass = $(this).find('#jsxc_password');
- var settings = jsxc.prepareLogin();
-
jsxc.triggeredFromBox = true;
jsxc.options.loginForm.triggered = false;
+ var settings = jsxc.prepareLogin();
+
if (settings === false) {
- jsxc.gui.showAuthFail();
+ onAuthFail();
} else {
+ $(document).on('authfail.jsxc', onAuthFail);
+
jsxc.xmpp.login();
}
-
- return false;
});
+
+ function onAuthFail() {
+ alert.show();
+ jsxc.gui.dialog.resize();
+
+ $('#jsxc_dialog').find('button').trigger('btnfinished.jsxc');
+
+ $('#jsxc_dialog').find('input').one('keypress', function() {
+ alert.hide();
+ jsxc.gui.dialog.resize();
+ });
+ }
},
/**
@@ -1231,6 +1248,9 @@ jsxc.gui.roster = {
/** True if roster is initialised */
ready: false,
+ /** True if all items are loaded */
+ loaded: false,
+
/**
* Init the roster skeleton
*
@@ -1634,6 +1654,32 @@ jsxc.gui.dialog = {
$('#cboxClose').hide();
}
+ $('#jsxc_dialog form').each(function() {
+ var form = $(this);
+
+ form.find('button[data-jsxc-loading-text]').each(function(){
+ var btn = $(this);
+
+ btn.on('btnloading.jsxc', function(){
+ if(!btn.prop('disabled')) {
+ btn.prop('disabled', true);
+
+ btn.data('jsxc_value', btn.text());
+
+ btn.text(btn.attr('data-jsxc-loading-text'));
+ }
+ });
+
+ btn.on('btnfinished.jsxc', function() {
+ if(btn.prop('disabled')) {
+ btn.prop('disabled', false);
+
+ btn.text(btn.data('jsxc_value'));
+ }
+ });
+ });
+ });
+
jsxc.gui.dialog.resize();
$(document).trigger('complete.dialog.jsxc');
@@ -2313,8 +2359,13 @@ jsxc.gui.template = {
var ret = jsxc.gui.template[name];
if (typeof (ret) === 'string') {
+ // prevent 404
+ ret = ret.replace(/\{\{root\}\}/g, ph.root);
+
+ // convert to string
ret = $('&lt;div>').append($(ret).i18n()).html();
+ // replace placeholders
ret = ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g, function(s, key) {
return (typeof ph[key] === 'string') ? ph[key] : s;
});
@@ -2451,9 +2502,10 @@ jsxc.gui.template = {
&lt;input type="text" name="username" id="jsxc_username" required="required" value="{{my_node}}"/>&lt;/p>\
&lt;p>&lt;label for="jsxc_password" data-i18n="Password">&lt;/label>\
&lt;input type="password" name="password" required="required" id="jsxc_password" />&lt;/p>\
+ &lt;div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_">&lt;/div>\
&lt;div class="bottom_submit_section">\
- &lt;input type="reset" class="button jsxc_close" name="clear" data-i18n="[value]Cancel"/>\
- &lt;input type="submit" class="button creation" name="commit" data-i18n="[value]Connect"/>\
+ &lt;button type="reset" class="jsxc_btn jsxc_close" name="clear" data-i18n="Cancel"/>\
+ &lt;button type="submit" class="jsxc_btn jsxc_btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect"/>\
&lt;/div>\
&lt;/form>',
contactDialog: '&lt;h3 data-i18n="Add_buddy">&lt;/h3>\
@@ -2555,7 +2607,7 @@ jsxc.gui.template = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.js.html b/doc/jsxc.lib.js.html
index 9af6e5a6..55531f09 100644
--- a/doc/jsxc.lib.js.html
+++ b/doc/jsxc.lib.js.html
@@ -208,6 +208,12 @@ jsxc = {
$.extend(true, jsxc.options, options);
}
+ // Check localStorage
+ if (typeof (localStorage) === 'undefined') {
+ jsxc.warn("Browser doesn't support localStorage.");
+ return;
+ }
+
/**
* Getter method for options. Saved options will override default one.
*
@@ -255,12 +261,6 @@ jsxc = {
localStorageExpirationTime: 60 * 60 * 24 * 1000,
});
- // Check localStorage
- if (typeof (localStorage) === 'undefined') {
- jsxc.debug("Browser doesn't support localStorage.");
- return;
- }
-
if (jsxc.storage.getItem('debug') === true) {
jsxc.options.otr.debug = true;
}
@@ -290,6 +290,10 @@ jsxc = {
// Check if we have to establish a new connection
if (!jsxc.storage.getItem('rid') || !jsxc.storage.getItem('sid') || !jsxc.restore) {
+ // clean up rid and sid
+ jsxc.storage.removeItem('rid');
+ jsxc.storage.removeItem('sid');
+
// Looking for a login form
if (!jsxc.options.loginForm.form || !(jsxc.el_exists(jsxc.options.loginForm.form) && jsxc.el_exists(jsxc.options.loginForm.jid) && jsxc.el_exists(jsxc.options.loginForm.pass))) {
@@ -371,7 +375,9 @@ jsxc = {
return;
}
- jsxc.gui.showWaitAlert($.t('Logging_in'));
+ if (!jsxc.triggeredFromBox && (jsxc.options.loginForm.onConnecting === 'dialog' || typeof jsxc.options.loginForm.onConnecting === 'undefined')) {
+ jsxc.gui.showWaitAlert($.t('Logging_in'));
+ }
var settings = jsxc.options.loadSettings.call(this, username, password);
@@ -381,6 +387,9 @@ jsxc = {
return false;
}
+ // prevent to modify the original object
+ settings = $.extend(true, {}, settings);
+
if (typeof settings.xmpp.username === 'string') {
username = settings.xmpp.username;
}
@@ -609,6 +618,7 @@ jsxc = {
jsxc.gui.roster.add(value);
});
+ jsxc.gui.roster.loaded = true;
$(document).trigger('cloaded.roster.jsxc');
},
@@ -810,7 +820,7 @@ jsxc = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.muc.js.html b/doc/jsxc.lib.muc.js.html
index ffc9fd23..36a78919 100644
--- a/doc/jsxc.lib.muc.js.html
+++ b/doc/jsxc.lib.muc.js.html
@@ -1157,7 +1157,7 @@ $(document).one('connected.jsxc', function() {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.notice.js.html b/doc/jsxc.lib.notice.js.html
index db363f9f..0530fb9f 100644
--- a/doc/jsxc.lib.notice.js.html
+++ b/doc/jsxc.lib.notice.js.html
@@ -157,7 +157,7 @@ jsxc.notice = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.notification.js.html b/doc/jsxc.lib.notification.js.html
index 55e6b3b3..c988f282 100644
--- a/doc/jsxc.lib.notification.js.html
+++ b/doc/jsxc.lib.notification.js.html
@@ -313,7 +313,7 @@ jsxc.notification = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.options.js.html b/doc/jsxc.lib.options.js.html
index 4c446766..75a500e3 100644
--- a/doc/jsxc.lib.options.js.html
+++ b/doc/jsxc.lib.options.js.html
@@ -86,13 +86,19 @@ jsxc.options = {
},
/**
+ * Action after login was called: dialog [String] Show wait dialog, false [boolean] |
+ * quiet [String] Do nothing
+ */
+ onConnecting: 'dialog',
+
+ /**
* Action after connected: submit [String] Submit form, false [boolean] Do
* nothing, continue [String] Start chat
*/
onConnected: 'submit',
/**
- * Action after auth fail: submit [String] Submit form, false [boolean] Do
+ * Action after auth fail: submit [String] Submit form, false [boolean] | quiet [String] Do
* nothing, ask [String] Show auth fail dialog
*/
onAuthFail: 'submit'
@@ -209,7 +215,7 @@ jsxc.options = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.otr.js.html b/doc/jsxc.lib.otr.js.html
index 9a50a2dc..d4d91780 100644
--- a/doc/jsxc.lib.otr.js.html
+++ b/doc/jsxc.lib.otr.js.html
@@ -272,6 +272,10 @@ jsxc.otr = {
* @returns {undefined}
*/
toggleTransfer: function(bid) {
+ if (typeof OTR !== 'function') {
+ return;
+ }
+
if (jsxc.storage.getUserItem('buddy', bid).msgstate === 0) {
jsxc.otr.goEncrypt(bid);
} else {
@@ -287,7 +291,9 @@ jsxc.otr = {
*/
goEncrypt: function(bid) {
if (jsxc.master) {
- jsxc.otr.objects[bid].sendQueryMsg();
+ if (jsxc.otr.objects.hasOwnProperty(bid)) {
+ jsxc.otr.objects[bid].sendQueryMsg();
+ }
} else {
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 1);
}
@@ -302,10 +308,12 @@ jsxc.otr = {
*/
goPlain: function(bid, cb) {
if (jsxc.master) {
- jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
- jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
+ if (jsxc.otr.objects.hasOwnProperty(bid)) {
+ jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
+ jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
- jsxc.otr.backup(bid);
+ jsxc.otr.backup(bid);
+ }
} else {
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 0);
}
@@ -388,6 +396,21 @@ jsxc.otr = {
return;
}
+ if (typeof OTR !== 'function') {
+ jsxc.warn('OTR support disabled');
+
+ OTR = {};
+ OTR.CONST = {
+ MSGSTATE_PLAINTEXT : 0,
+ MSGSTATE_ENCRYPTED : 1,
+ MSGSTATE_FINISHED : 2
+ };
+
+ jsxc._onMaster();
+
+ return;
+ }
+
if (jsxc.storage.getUserItem('key') === null) {
var msg = $.t('Creating_your_private_key_');
var worker = null;
@@ -503,7 +526,7 @@ jsxc.otr = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.storage.js.html b/doc/jsxc.lib.storage.js.html
index 244cd80b..13ebc327 100644
--- a/doc/jsxc.lib.storage.js.html
+++ b/doc/jsxc.lib.storage.js.html
@@ -653,7 +653,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.webrtc.js.html b/doc/jsxc.lib.webrtc.js.html
index 55bf8d61..27b62d50 100644
--- a/doc/jsxc.lib.webrtc.js.html
+++ b/doc/jsxc.lib.webrtc.js.html
@@ -308,7 +308,17 @@ jsxc.gui.template.videoWindow = '&lt;div class="jsxc_webrtc">\
}
var win = jsxc.gui.window.get(bid);
- var jid = win.data('jid') || jsxc.storage.getUserItem('buddy', bid).jid;
+ var jid = win.data('jid');
+ var ls = jsxc.storage.getUserItem('buddy', bid);
+
+ if (typeof jid !== 'string') {
+ if (ls && typeof ls.jid === 'string') {
+ jid = ls.jid;
+ } else {
+ jsxc.debug('[webrtc] Could not update icon, because could not find jid for ' + bid);
+ return;
+ }
+ }
var el = win.find('.jsxc_video').add(jsxc.gui.roster.getItem(bid).find('.jsxc_video'));
@@ -371,12 +381,14 @@ jsxc.gui.template.videoWindow = '&lt;div class="jsxc_webrtc">\
* @param status
* @private
*/
- onPresence: function(ev, jid) {
+ onPresence: function(ev, jid, status, presence) {
var self = jsxc.webrtc;
- jsxc.debug('webrtc.onpresence', jid);
+ if ($(presence).find('c[xmlns="' + Strophe.NS.CAPS + '"]').length === 0) {
+ jsxc.debug('webrtc.onpresence', jid);
- self.updateIcon(jsxc.jidToBid(jid));
+ self.updateIcon(jsxc.jidToBid(jid));
+ }
},
/**
@@ -437,7 +449,13 @@ jsxc.gui.template.videoWindow = '&lt;div class="jsxc_webrtc">\
onCaps: function(event, jid) {
var self = jsxc.webrtc;
- self.updateIcon(jsxc.jidToBid(jid));
+ if (jsxc.gui.roster.loaded) {
+ self.updateIcon(jsxc.jidToBid(jid));
+ } else {
+ $(document).on('cloaded.roster.jsxc', function() {
+ self.updateIcon(jsxc.jidToBid(jid));
+ });
+ }
},
/**
@@ -678,23 +696,7 @@ jsxc.gui.template.videoWindow = '&lt;div class="jsxc_webrtc">\
sess.local_fp = SDPUtil.parse_fingerprint(SDPUtil.find_line(localSDP, 'a=fingerprint:')).fingerprint;
sess.remote_fp = SDPUtil.parse_fingerprint(SDPUtil.find_line(remoteSDP, 'a=fingerprint:')).fingerprint;
- var ip_regex = "(\\d{1,3}\\.\\d{1,3}.\\d{1,3}\\.\\d{1,3}) \\d+ typ host";
-
- sess.remote_ip = remoteSDP.match(new RegExp(ip_regex))[1];
- sess.local_ip = localSDP.match(new RegExp(ip_regex))[1];
-
- var regex = new RegExp(ip_regex, 'g');
- var match;
- while ((match = regex.exec(remoteSDP)) !== null) {
- if (match[1] !== sess.remote_ip) {
- alert('!!! WARNING !!!\n\nPossible Man-in-the-middle attack detected!\n\nYou should close the connection.');
- return;
- }
- }
-
var text = '&lt;p>';
- text += '&lt;b>' + $.t('Local_IP') + ': &lt;/b>' + sess.local_ip + '&lt;br />';
- text += '&lt;b>' + $.t('Remote_IP') + ': &lt;/b>' + sess.remote_ip + '&lt;br />';
text += '&lt;b>' + $.t('Local_Fingerprint') + ': &lt;/b>' + sess.local_fp + '&lt;br />';
text += '&lt;b>' + $.t('Remote_Fingerprint') + ': &lt;/b>' + sess.remote_fp;
text += '&lt;/p>';
@@ -1023,7 +1025,7 @@ jsxc.gui.template.videoWindow = '&lt;div class="jsxc_webrtc">\
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.lib.xmpp.js.html b/doc/jsxc.lib.xmpp.js.html
index f39752ed..2de4a1d5 100644
--- a/doc/jsxc.lib.xmpp.js.html
+++ b/doc/jsxc.lib.xmpp.js.html
@@ -58,7 +58,7 @@ jsxc.xmpp = {
*/
login: function() {
- if (jsxc.xmpp.conn && jsxc.xmpp.conn.connected) {
+ if (jsxc.xmpp.conn && jsxc.xmpp.conn.authenticated) {
return;
}
@@ -89,15 +89,17 @@ jsxc.xmpp = {
var url = jsxc.options.get('xmpp').url;
- // Register eventlistener
- $(document).on('connected.jsxc', jsxc.xmpp.connected);
- $(document).on('attached.jsxc', jsxc.xmpp.attached);
- $(document).on('disconnected.jsxc', jsxc.xmpp.disconnected);
- $(document).on('ridChange', jsxc.xmpp.onRidChange);
- $(document).on('connfail.jsxc', jsxc.xmpp.onConnfail);
- $(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
+ if (!(jsxc.xmpp.conn && jsxc.xmpp.conn.connected)) {
+ // Register eventlistener
+ $(document).on('connected.jsxc', jsxc.xmpp.connected);
+ $(document).on('attached.jsxc', jsxc.xmpp.attached);
+ $(document).on('disconnected.jsxc', jsxc.xmpp.disconnected);
+ $(document).on('ridChange', jsxc.xmpp.onRidChange);
+ $(document).on('connfail.jsxc', jsxc.xmpp.onConnfail);
+ $(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
- Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
+ Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
+ }
// Create new connection (no login)
jsxc.xmpp.conn = new Strophe.Connection(url);
@@ -125,6 +127,9 @@ jsxc.xmpp = {
jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status] + ': ' + condition);
switch (status) {
+ case Strophe.Status.CONNECTING:
+ $(document).trigger('connecting.jsxc');
+ break;
case Strophe.Status.CONNECTED:
jsxc.bid = jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase());
$(document).trigger('connected.jsxc');
@@ -457,6 +462,7 @@ jsxc.xmpp = {
* @private
*/
onAuthFail: function() {
+
if (jsxc.options.loginForm.triggered) {
switch (jsxc.options.loginForm.onAuthFail || 'ask') {
case 'ask':
@@ -465,12 +471,11 @@ jsxc.xmpp = {
case 'submit':
jsxc.submitLoginForm();
break;
+ case 'quiet':
+ case false:
+ return;
}
}
-
- if (jsxc.triggeredFromBox) {
- jsxc.gui.showAuthFail();
- }
},
/**
@@ -516,6 +521,7 @@ jsxc.xmpp = {
jsxc.storage.setUserItem('buddylist', buddies);
+ jsxc.gui.roster.loaded = true;
jsxc.debug('Roster loaded');
$(document).trigger('cloaded.roster.jsxc');
},
@@ -1152,7 +1158,7 @@ jsxc.xmpp.carbons = {
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:18 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.muc.html b/doc/jsxc.muc.html
index 518852ab..f0ec4730 100644
--- a/doc/jsxc.muc.html
+++ b/doc/jsxc.muc.html
@@ -2939,7 +2939,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:19 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.notification.html b/doc/jsxc.notification.html
index 613ee30e..f2a01296 100644
--- a/doc/jsxc.notification.html
+++ b/doc/jsxc.notification.html
@@ -1256,7 +1256,7 @@ messages.
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.options.html b/doc/jsxc.options.html
index f8c35502..865506df 100644
--- a/doc/jsxc.options.html
+++ b/doc/jsxc.options.html
@@ -188,7 +188,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line84">line 84</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line90">line 90</a>
</li></ul></dd>
@@ -296,7 +296,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line81">line 81</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line87">line 87</a>
</li></ul></dd>
@@ -350,7 +350,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line110">line 110</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line116">line 116</a>
</li></ul></dd>
@@ -458,7 +458,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line99">line 99</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line105">line 105</a>
</li></ul></dd>
@@ -512,7 +512,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line75">line 75</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line81">line 81</a>
</li></ul></dd>
@@ -566,7 +566,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line113">line 113</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line119">line 119</a>
</li></ul></dd>
@@ -620,7 +620,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line90">line 90</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line96">line 96</a>
</li></ul></dd>
@@ -674,7 +674,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line78">line 78</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line84">line 84</a>
</li></ul></dd>
@@ -782,7 +782,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line93">line 93</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line99">line 99</a>
</li></ul></dd>
@@ -890,7 +890,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line96">line 96</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line102">line 102</a>
</li></ul></dd>
@@ -944,7 +944,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line87">line 87</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line93">line 93</a>
</li></ul></dd>
@@ -1163,7 +1163,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line121">line 121</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line127">line 127</a>
</li></ul></dd>
@@ -1233,7 +1233,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line105">line 105</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line111">line 111</a>
</li></ul></dd>
@@ -1350,7 +1350,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line190">line 190</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line196">line 196</a>
</li></ul></dd>
@@ -1500,7 +1500,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line155">line 155</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line161">line 161</a>
</li></ul></dd>
@@ -1630,7 +1630,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line133">line 133</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line139">line 139</a>
</li></ul></dd>
@@ -1764,7 +1764,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line144">line 144</a>
+ <a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line150">line 150</a>
</li></ul></dd>
@@ -1926,7 +1926,7 @@ connection is found.
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line202">line 202</a>
+ <a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line208">line 208</a>
</li></ul></dd>
@@ -1973,7 +1973,7 @@ connection is found.
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.otr.html b/doc/jsxc.otr.html
index 1d890075..926ac9eb 100644
--- a/doc/jsxc.otr.html
+++ b/doc/jsxc.otr.html
@@ -197,7 +197,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line429">line 429</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line452">line 452</a>
</li></ul></dd>
@@ -314,7 +314,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line292">line 292</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line300">line 300</a>
</li></ul></dd>
@@ -518,7 +518,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line359">line 359</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line367">line 367</a>
</li></ul></dd>
@@ -653,7 +653,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line443">line 443</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line466">line 466</a>
</li></ul></dd>
@@ -770,7 +770,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line261">line 261</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line265">line 265</a>
</li></ul></dd>
@@ -923,7 +923,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line276">line 276</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line282">line 282</a>
</li></ul></dd>
@@ -1493,7 +1493,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line324">line 324</a>
+ <a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line332">line 332</a>
</li></ul></dd>
@@ -2024,7 +2024,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.storage.html b/doc/jsxc.storage.html
index 92c692f7..4b2dc0b2 100644
--- a/doc/jsxc.storage.html
+++ b/doc/jsxc.storage.html
@@ -2329,7 +2329,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.webrtc.html b/doc/jsxc.webrtc.html
index 01516b27..d456f222 100644
--- a/doc/jsxc.webrtc.html
+++ b/doc/jsxc.webrtc.html
@@ -722,7 +722,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line747">line 747</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line749">line 749</a>
</li></ul></dd>
@@ -990,7 +990,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line694">line 694</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line696">line 696</a>
</li></ul></dd>
@@ -1286,7 +1286,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line472">line 472</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line490">line 490</a>
</li></ul></dd>
@@ -1355,7 +1355,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line574">line 574</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line592">line 592</a>
</li></ul></dd>
@@ -1557,7 +1557,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line539">line 539</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line557">line 557</a>
</li></ul></dd>
@@ -1687,7 +1687,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line410">line 410</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line422">line 422</a>
</li></ul></dd>
@@ -1835,7 +1835,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line635">line 635</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line653">line 653</a>
</li></ul></dd>
@@ -1904,7 +1904,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line457">line 457</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line475">line 475</a>
</li></ul></dd>
@@ -2034,7 +2034,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line424">line 424</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line442">line 442</a>
</li></ul></dd>
@@ -2164,7 +2164,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line327">line 327</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line337">line 337</a>
</li></ul></dd>
@@ -2294,7 +2294,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line347">line 347</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line357">line 357</a>
</li></ul></dd>
@@ -2442,7 +2442,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line587">line 587</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line605">line 605</a>
</li></ul></dd>
@@ -2590,7 +2590,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line622">line 622</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line640">line 640</a>
</li></ul></dd>
@@ -2659,7 +2659,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line759">line 759</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line761">line 761</a>
</li></ul></dd>
@@ -2789,7 +2789,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line362">line 362</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line374">line 374</a>
</li></ul></dd>
@@ -2901,7 +2901,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line796">line 796</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line798">line 798</a>
</li></ul></dd>
@@ -3031,7 +3031,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line705">line 705</a>
+ <a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line707">line 707</a>
</li></ul></dd>
@@ -3190,7 +3190,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.xmpp.carbons.html b/doc/jsxc.xmpp.carbons.html
index e317ed08..9766113d 100644
--- a/doc/jsxc.xmpp.carbons.html
+++ b/doc/jsxc.xmpp.carbons.html
@@ -66,7 +66,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1034">line 1034</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1040">line 1040</a>
</li></ul></dd>
@@ -184,7 +184,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1074">line 1074</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1080">line 1080</a>
</li></ul></dd>
@@ -296,7 +296,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1048">line 1048</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1054">line 1054</a>
</li></ul></dd>
@@ -408,7 +408,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1100">line 1100</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1106">line 1106</a>
</li></ul></dd>
@@ -455,7 +455,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/doc/jsxc.xmpp.html b/doc/jsxc.xmpp.html
index cc5c6e78..3d04df7c 100644
--- a/doc/jsxc.xmpp.html
+++ b/doc/jsxc.xmpp.html
@@ -393,7 +393,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line960">line 960</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line966">line 966</a>
</li></ul></dd>
@@ -533,7 +533,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line857">line 857</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line863">line 863</a>
</li></ul></dd>
@@ -602,7 +602,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line269">line 269</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line274">line 274</a>
</li></ul></dd>
@@ -671,7 +671,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line223">line 223</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line228">line 228</a>
</li></ul></dd>
@@ -740,7 +740,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line332">line 332</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line337">line 337</a>
</li></ul></dd>
@@ -809,7 +809,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line378">line 378</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line383">line 383</a>
</li></ul></dd>
@@ -921,7 +921,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1018">line 1018</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1024">line 1024</a>
</li></ul></dd>
@@ -1079,7 +1079,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line995">line 995</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1001">line 1001</a>
</li></ul></dd>
@@ -1196,7 +1196,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line157">line 157</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line162">line 162</a>
</li></ul></dd>
@@ -1283,7 +1283,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line432">line 432</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line437">line 437</a>
</li></ul></dd>
@@ -1400,7 +1400,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line419">line 419</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line424">line 424</a>
</li></ul></dd>
@@ -1517,7 +1517,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line702">line 702</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line708">line 708</a>
</li></ul></dd>
@@ -1652,7 +1652,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line576">line 576</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line582">line 582</a>
</li></ul></dd>
@@ -1792,7 +1792,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line826">line 826</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line832">line 832</a>
</li></ul></dd>
@@ -1909,7 +1909,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line455">line 455</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line460">line 460</a>
</li></ul></dd>
@@ -2026,7 +2026,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line503">line 503</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line509">line 509</a>
</li></ul></dd>
@@ -2165,7 +2165,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line892">line 892</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line898">line 898</a>
</li></ul></dd>
@@ -2305,7 +2305,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line836">line 836</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line842">line 842</a>
</li></ul></dd>
@@ -2453,7 +2453,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line943">line 943</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line949">line 949</a>
</li></ul></dd>
@@ -2522,7 +2522,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
- <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line343">line 343</a>
+ <a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line348">line 348</a>
</li></ul></dd>
@@ -2569,7 +2569,7 @@
<br clear="both">
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sat May 23 2015 16:03:20 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
diff --git a/package.json b/package.json
index 8f883ced..39004fbc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jsxc",
- "version": "2.0.0",
+ "version": "2.0.1",
"description": "Real-time chat app",
"homepage": "http://www.jsxc.org/",
"bugs": "https://github.com/jsxc/jsxc/issues",