Created
April 19, 2016 07:22
-
-
Save murillo128/cae8ed817c065b474a804f68ce3c1076 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * ----------------- ThirdPartyNotices ----------------------------------------- | |
| * This file is based on or incorporates material from the projects listed below | |
| * (collectively, โThird Party Codeโ). | |
| * Skype is not the original author of the Third Party Code. | |
| * The original copyright notice and the license, under which Skype received | |
| * such Third Party Code, are set forth below. | |
| * Such licenses and notices are provided for informational purposes only. | |
| * Skype, not the third party, licenses the Third Party Code to you | |
| * under the terms set forth in the Terms of Use for the Skype Product. | |
| * Skype reserves all other rights not expressly granted under this agreement, | |
| * whether by implication, estoppel or otherwise. | |
| */ | |
| /** License | |
| *The JavaScript Canvas to Blob script is released under the | |
| *MIT license: http://www.opensource.org/licenses/MIT. | |
| */ | |
| /** | |
| * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved. | |
| * Available via the MIT or new BSD license. | |
| * see: http://github.com/jrburke/almond for details | |
| */ | |
| /*! elementQuery | Author: Tyson Matanich (http://matanich.com), 2013 | License: MIT */ | |
| /*! | |
| * @overview es6-promise - a tiny implementation of Promises/A+. | |
| * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) | |
| * @license Licensed under MIT license | |
| * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE | |
| * @version 2.3.0 | |
| */ | |
| /*! | |
| * Knockout JavaScript library v3.2.0 | |
| * (c) Steven Sanderson - http://knockoutjs.com/ | |
| * License: MIT (http://www.opensource.org/licenses/mit-license.php) | |
| */ | |
| /** | |
| * @license | |
| * lodash 3.6.0 (Custom Build) <https://lodash.com/> | |
| * Build: `lodash compat -o ./lodash.js` | |
| * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> | |
| * Based on Underscore.js 1.8.2 <http://underscorejs.org/LICENSE> | |
| * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | |
| * Available under MIT license <https://lodash.com/license> | |
| */ | |
| /*! | |
| * | |
| * Copyright 2009-2012 Kris Kowal under the terms of the MIT | |
| * license found at http://github.com/kriskowal/q/raw/master/LICENSE | |
| * | |
| * With parts by Tyler Close | |
| * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found | |
| * at http://www.opensource.org/licenses/mit-license.html | |
| * Forked at ref_send.js version: 2009-05-11 | |
| * | |
| * With parts by Mark Miller | |
| * Copyright (C) 2011 Google Inc. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| * | |
| */ | |
| /*! | |
| * Reqwest! A general purpose XHR connection manager | |
| * license MIT (c) Dustin Diaz 2013 | |
| * https://github.com/ded/reqwest | |
| ** version 1.0.2 | |
| */ | |
| /*! | |
| * Sizzle CSS Selector Engine v@VERSION | |
| * http://sizzlejs.com/ | |
| * | |
| * Copyright 2013 jQuery Foundation, Inc. and other contributors | |
| * Released under the MIT license | |
| * http://jquery.org/license | |
| * | |
| * Date: @DATE | |
| */ | |
| /** | |
| * Copyright (c) 2011-2014 Felix Gnass | |
| * Licensed under the MIT license | |
| * http://spin.js.org/ | |
| */ | |
| // | |
| // usertiming.js | |
| // | |
| // A polyfill for UserTiming (http://www.w3.org/TR/user-timing/) | |
| // | |
| // Copyright 2013 Nic Jansma | |
| // http://nicj.net | |
| // | |
| // https://github.com/nicjansma/usertiming.js | |
| // | |
| // Licensed under the MIT license | |
| // | |
| /* *********************************** | |
| * * Share on Skype * | |
| * * THIRD PARTY CODE NOTICE * | |
| * *********************************** | |
| * This file is based on or incorporates material from the projects listed below (collectively, โThird Party Codeโ). Skype is not the original author of the Third Party Code. The original copyright * notice and the license, under which Skype received such Third Party Code, are set forth below. Such licenses and notices are provided for informational purposes only. Skype, not the third party, * licenses the Third Party Code to you under the terms set forth in the Terms of Use for the Skype Product. Skype reserves all other rights not expressly granted under this agreement, whether by * implication, estoppel or otherwise. | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * React 0.13.3 | |
| * | |
| * Copyright (c) 2013-2015, Facebook, Inc. | |
| * | |
| * For informational purposes only. | |
| * | |
| * All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without modification, | |
| * are permitted provided that the following conditions are met: | |
| * | |
| * * Redistributions of source code must retain the above copyright notice, this | |
| * list of conditions and the following disclaimer. | |
| * | |
| * * Redistributions in binary form must reproduce the above copyright notice, | |
| * this list of conditions and the following disclaimer in the documentation | |
| * and/or other materials provided with the distribution. | |
| * | |
| * * Neither the name Facebook nor the names of its contributors may be used to | |
| * endorse or promote products derived from this software without specific | |
| * prior written permission. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
| * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
| * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR | |
| * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
| * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
| * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |
| * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
| * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * through 2.3.8 | |
| * | |
| * Copyright (c) 2011 Dominic Tarr | |
| * | |
| * Provided for Informational Purposes Only | |
| * MIT License | |
| * | |
| * Permission is hereby granted, free of charge, to any person obtaining | |
| * a copy of this software and associated documentation files (the | |
| * "Software"), to deal in the Software without restriction, including | |
| * without limitation the rights to use, copy, modify, merge, publish, | |
| * distribute, sublicense, and/or sell copies of the Software, and to | |
| * permit persons to whom the Software is furnished to do so, subject to | |
| * the following conditions: | |
| * The above copyright notice and this permission notice shall be | |
| * included in all copies or substantial portions of the Software. | |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
| * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
| * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.. | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * base62 0.1.1 | |
| * | |
| * Copyright (c) 2012 Andrew Nesbitt | |
| * Provided for Informational Purposes Only | |
| * MIT License | |
| * | |
| * Permission is hereby granted, free of charge, to any person obtaining | |
| * a copy of this software and associated documentation files (the | |
| * "Software"), to deal in the Software without restriction, including | |
| * without limitation the rights to use, copy, modify, merge, publish, | |
| * distribute, sublicense, and/or sell copies of the Software, and to | |
| * permit persons to whom the Software is furnished to do so, subject to | |
| * the following conditions: | |
| * The above copyright notice and this permission notice shall be | |
| * included in all copies or substantial portions of the Software. | |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
| * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
| * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| * | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * | |
| * amdefine 1.0.0 | |
| * | |
| * Copyright (c) 2011-2015 The Dojo Foundation | |
| * Provided for Informational Purposes Only | |
| * MIT License | |
| * | |
| * Permission is hereby granted, free of charge, to any person obtaining | |
| * a copy of this software and associated documentation files (the | |
| * "Software"), to deal in the Software without restriction, including | |
| * without limitation the rights to use, copy, modify, merge, publish, | |
| * distribute, sublicense, and/or sell copies of the Software, and to | |
| * permit persons to whom the Software is furnished to do so, subject to | |
| * the following conditions: | |
| * The above copyright notice and this permission notice shall be | |
| * included in all copies or substantial portions of the Software. | |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
| * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
| * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| * | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * | |
| * source-map 0.1.31 | |
| * Copyright (c) 2009-2011, Mozilla Foundation and contributors | |
| * All rights reserved. | |
| * Provided for Informational Purposes Only | |
| * BSD License | |
| * | |
| * Redistribution and use in source and binary forms, with or without | |
| * modification, are permitted provided that the following conditions are met: | |
| * | |
| * * Redistributions of source code must retain the above copyright notice, this | |
| * list of conditions and the following disclaimer. | |
| * | |
| * * Redistributions in binary form must reproduce the above copyright notice, | |
| * this list of conditions and the following disclaimer in the documentation | |
| * and/or other materials provided with the distribution. | |
| * | |
| * * Neither the names of the Mozilla Foundation nor the names of project | |
| * contributors may be used to endorse or promote products derived from this | |
| * software without specific prior written permission. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
| * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
| * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |
| * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
| * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |
| * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * esprima-fb 13001.1001.0-dev-harmony-fb | |
| * | |
| * Copyright (c) Facebook | |
| * Provided for Informational Purposes Only | |
| * BSD License | |
| * | |
| * All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: | |
| * | |
| * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. | |
| * | |
| * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| * | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * | |
| * jstransform 10.1.0 | |
| * | |
| * Copyright (c) 2013-present, Facebook, Inc. | |
| * | |
| * Provided for Informational Purposes Only | |
| * BSD License | |
| * | |
| * All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without modification, | |
| * are permitted provided that the following conditions are met: | |
| * * Redistributions of source code must retain the above copyright notice, this | |
| * list of conditions and the following disclaimer. | |
| * * Redistributions in binary form must reproduce the above copyright notice, | |
| * this list of conditions and the following disclaimer in the documentation | |
| * and/or other materials provided with the distribution. | |
| * * Neither the name Facebook nor the names of its contributors may be used to | |
| * endorse or promote products derived from this software without specific | |
| * prior written permission. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| * ------------------------------------------------------------------------------------------------------------------------ | |
| * | |
| * envify 3.4.0 | |
| * | |
| * Copyright (c) Hugh Kennedy and Andres Suarez | |
| * | |
| * Provided for Informational Purposes Only | |
| * MIT License | |
| * | |
| * Permission is hereby granted, free of charge, to any person obtaining | |
| * a copy of this software and associated documentation files (the | |
| * "Software"), to deal in the Software without restriction, including | |
| * without limitation the rights to use, copy, modify, merge, publish, | |
| * distribute, sublicense, and/or sell copies of the Software, and to | |
| * permit persons to whom the Software is furnished to do so, subject to | |
| * the following conditions: | |
| * The above copyright notice and this permission notice shall be | |
| * included in all copies or substantial portions of the Software. | |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
| * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
| * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| */ | |
| /** | |
| * ----------------- End of ThirdPartyNotices ---------------------------------- | |
| */ | |
| (function() { | |
| var requirejs, require, define; | |
| (function(e) { | |
| function h(e, t) { | |
| return f.call(e, t) | |
| } | |
| function p(e, t) { | |
| var n, r, i, s, o, a, f, l, h, p, d, v = t && t.split("/"), m = u.map, g = m && m["*"] || {}; | |
| if (e && e.charAt(0) === ".") | |
| if (t) { | |
| v = v.slice(0, v.length - 1), | |
| e = e.split("/"), | |
| o = e.length - 1, | |
| u.nodeIdCompat && c.test(e[o]) && (e[o] = e[o].replace(c, "")), | |
| e = v.concat(e); | |
| for (h = 0; h < e.length; h += 1) { | |
| d = e[h]; | |
| if (d === ".") | |
| e.splice(h, 1), | |
| h -= 1; | |
| else if (d === "..") { | |
| if (h === 1 && (e[2] === ".." || e[0] === "..")) | |
| break; | |
| h > 0 && (e.splice(h - 1, 2), | |
| h -= 2) | |
| } | |
| } | |
| e = e.join("/") | |
| } else | |
| e.indexOf("./") === 0 && (e = e.substring(2)); | |
| if ((v || g) && m) { | |
| n = e.split("/"); | |
| for (h = n.length; h > 0; h -= 1) { | |
| r = n.slice(0, h).join("/"); | |
| if (v) | |
| for (p = v.length; p > 0; p -= 1) { | |
| i = m[v.slice(0, p).join("/")]; | |
| if (i) { | |
| i = i[r]; | |
| if (i) { | |
| s = i, | |
| a = h; | |
| break | |
| } | |
| } | |
| } | |
| if (s) | |
| break; | |
| !f && g && g[r] && (f = g[r], | |
| l = h) | |
| } | |
| !s && f && (s = f, | |
| a = l), | |
| s && (n.splice(0, a, s), | |
| e = n.join("/")) | |
| } | |
| return e | |
| } | |
| function d(t, r) { | |
| return function() { | |
| return n.apply(e, l.call(arguments, 0).concat([t, r])) | |
| } | |
| } | |
| function v(e) { | |
| return function(t) { | |
| return p(t, e) | |
| } | |
| } | |
| function m(e) { | |
| return function(t) { | |
| s[e] = t | |
| } | |
| } | |
| function g(n) { | |
| if (h(o, n)) { | |
| var r = o[n]; | |
| delete o[n], | |
| a[n] = !0, | |
| t.apply(e, r) | |
| } | |
| if (!h(s, n) && !h(a, n)) | |
| throw new Error("No " + n); | |
| return s[n] | |
| } | |
| function y(e) { | |
| var t, n = e ? e.indexOf("!") : -1; | |
| return n > -1 && (t = e.substring(0, n), | |
| e = e.substring(n + 1, e.length)), | |
| [t, e] | |
| } | |
| function b(e) { | |
| return function() { | |
| return u && u.config && u.config[e] || {} | |
| } | |
| } | |
| var t, n, r, i, s = {}, o = {}, u = {}, a = {}, f = Object.prototype.hasOwnProperty, l = [].slice, c = /\.js$/; | |
| r = function(e, t) { | |
| var n, r = y(e), i = r[0]; | |
| return e = r[1], | |
| i && (i = p(i, t), | |
| n = g(i)), | |
| i ? n && n.normalize ? e = n.normalize(e, v(t)) : e = p(e, t) : (e = p(e, t), | |
| r = y(e), | |
| i = r[0], | |
| e = r[1], | |
| i && (n = g(i))), | |
| { | |
| f: i ? i + "!" + e : e, | |
| n: e, | |
| pr: i, | |
| p: n | |
| } | |
| } | |
| , | |
| i = { | |
| require: function(e) { | |
| return d(e) | |
| }, | |
| exports: function(e) { | |
| var t = s[e]; | |
| return typeof t != "undefined" ? t : s[e] = {} | |
| }, | |
| module: function(e) { | |
| return { | |
| id: e, | |
| uri: "", | |
| exports: s[e], | |
| config: b(e) | |
| } | |
| } | |
| }, | |
| t = function(t, n, u, f) { | |
| var l, c, p, v, y, b = [], w = typeof u, E; | |
| f = f || t; | |
| if (w === "undefined" || w === "function") { | |
| n = !n.length && u.length ? ["require", "exports", "module"] : n; | |
| for (y = 0; y < n.length; y += 1) { | |
| v = r(n[y], f), | |
| c = v.f; | |
| if (c === "require") | |
| b[y] = i.require(t); | |
| else if (c === "exports") | |
| b[y] = i.exports(t), | |
| E = !0; | |
| else if (c === "module") | |
| l = b[y] = i.module(t); | |
| else if (h(s, c) || h(o, c) || h(a, c)) | |
| b[y] = g(c); | |
| else { | |
| if (!v.p) | |
| throw new Error(t + " missing " + c); | |
| v.p.load(v.n, d(f, !0), m(c), {}), | |
| b[y] = s[c] | |
| } | |
| } | |
| p = u ? u.apply(s[t], b) : undefined; | |
| if (t) | |
| if (l && l.exports !== e && l.exports !== s[t]) | |
| s[t] = l.exports; | |
| else if (p !== e || !E) | |
| s[t] = p | |
| } else | |
| t && (s[t] = u) | |
| } | |
| , | |
| requirejs = require = n = function(s, o, a, f, l) { | |
| if (typeof s == "string") | |
| return i[s] ? i[s](o) : g(r(s, o).f); | |
| if (!s.splice) { | |
| u = s, | |
| u.deps && n(u.deps, u.callback); | |
| if (!o) | |
| return; | |
| o.splice ? (s = o, | |
| o = a, | |
| a = null ) : s = e | |
| } | |
| return o = o || function() {} | |
| , | |
| typeof a == "function" && (a = f, | |
| f = l), | |
| f ? t(e, s, o, a) : setTimeout(function() { | |
| t(e, s, o, a) | |
| }, 4), | |
| n | |
| } | |
| , | |
| n.config = function(e) { | |
| return n(e) | |
| } | |
| , | |
| requirejs._defined = s, | |
| define = function(e, t, n) { | |
| t.splice || (n = t, | |
| t = []), | |
| !h(s, e) && !h(o, e) && (o[e] = [e, t, n]) | |
| } | |
| , | |
| define.amd = { | |
| jQuery: !0 | |
| } | |
| })(), | |
| define("amd", function() {}), | |
| define("utils/common/stringPolyfills", ["require", "exports", "module"], function(e, t) { | |
| t.localeCompare = function(e) { | |
| var t = this; | |
| return t < e ? -1 : t > e ? 1 : 0 | |
| } | |
| }), | |
| function() { | |
| function e(e) { | |
| return typeof e == "function" || typeof e == "object" && e !== null | |
| } | |
| function t(e) { | |
| return typeof e == "function" | |
| } | |
| function n(e) { | |
| return typeof e == "object" && e !== null | |
| } | |
| function l(e) { | |
| a = e | |
| } | |
| function c(e) { | |
| f = e | |
| } | |
| function g() { | |
| var e = process.nextTick | |
| , t = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/); | |
| return Array.isArray(t) && t[1] === "0" && t[2] === "10" && (e = setImmediate), | |
| function() { | |
| e(x) | |
| } | |
| } | |
| function y() { | |
| return function() { | |
| u(x) | |
| } | |
| } | |
| function b() { | |
| var e = 0 | |
| , t = new d(x) | |
| , n = document.createTextNode(""); | |
| return t.observe(n, { | |
| characterData: !0 | |
| }), | |
| function() { | |
| n.data = e = ++e % 2 | |
| } | |
| } | |
| function w() { | |
| var e = new MessageChannel; | |
| return e.port1.onmessage = x, | |
| function() { | |
| e.port2.postMessage(0) | |
| } | |
| } | |
| function E() { | |
| return function() { | |
| setTimeout(x, 1) | |
| } | |
| } | |
| function x() { | |
| for (var e = 0; e < s; e += 2) { | |
| var t = S[e] | |
| , n = S[e + 1]; | |
| t(n), | |
| S[e] = undefined, | |
| S[e + 1] = undefined | |
| } | |
| s = 0 | |
| } | |
| function T() { | |
| try { | |
| var e = require | |
| , t = e("vertx"); | |
| return u = t.runOnLoop || t.runOnContext, | |
| y() | |
| } catch (n) { | |
| return E() | |
| } | |
| } | |
| function C() {} | |
| function M() { | |
| return new TypeError("You cannot resolve a promise with itself") | |
| } | |
| function _() { | |
| return new TypeError("A promises callback cannot return that same promise.") | |
| } | |
| function D(e) { | |
| try { | |
| return e.then | |
| } catch (t) { | |
| return O.error = t, | |
| O | |
| } | |
| } | |
| function P(e, t, n, r) { | |
| try { | |
| e.call(t, n, r) | |
| } catch (i) { | |
| return i | |
| } | |
| } | |
| function H(e, t, n) { | |
| f(function(e) { | |
| var r = !1 | |
| , i = P(n, t, function(n) { | |
| if (r) | |
| return; | |
| r = !0, | |
| t !== n ? F(e, n) : q(e, n) | |
| }, function(t) { | |
| if (r) | |
| return; | |
| r = !0, | |
| R(e, t) | |
| }, "Settle: " + (e._label || " unknown promise")); | |
| !r && i && (r = !0, | |
| R(e, i)) | |
| }, e) | |
| } | |
| function B(e, t) { | |
| t._state === L ? q(e, t._result) : t._state === A ? R(e, t._result) : U(t, undefined, function(t) { | |
| F(e, t) | |
| }, function(t) { | |
| R(e, t) | |
| }) | |
| } | |
| function j(e, n) { | |
| if (n.constructor === e.constructor) | |
| B(e, n); | |
| else { | |
| var r = D(n); | |
| r === O ? R(e, O.error) : r === undefined ? q(e, n) : t(r) ? H(e, n, r) : q(e, n) | |
| } | |
| } | |
| function F(t, n) { | |
| t === n ? R(t, M()) : e(n) ? j(t, n) : q(t, n) | |
| } | |
| function I(e) { | |
| e._onerror && e._onerror(e._result), | |
| z(e) | |
| } | |
| function q(e, t) { | |
| if (e._state !== k) | |
| return; | |
| e._result = t, | |
| e._state = L, | |
| e._subscribers.length !== 0 && f(z, e) | |
| } | |
| function R(e, t) { | |
| if (e._state !== k) | |
| return; | |
| e._state = A, | |
| e._result = t, | |
| f(I, e) | |
| } | |
| function U(e, t, n, r) { | |
| var i = e._subscribers | |
| , s = i.length; | |
| e._onerror = null , | |
| i[s] = t, | |
| i[s + L] = n, | |
| i[s + A] = r, | |
| s === 0 && e._state && f(z, e) | |
| } | |
| function z(e) { | |
| var t = e._subscribers | |
| , n = e._state; | |
| if (t.length === 0) | |
| return; | |
| var r, i, s = e._result; | |
| for (var o = 0; o < t.length; o += 3) | |
| r = t[o], | |
| i = t[o + n], | |
| r ? $(n, r, i, s) : i(s); | |
| e._subscribers.length = 0 | |
| } | |
| function W() { | |
| this.error = null | |
| } | |
| function V(e, t) { | |
| try { | |
| return e(t) | |
| } catch (n) { | |
| return X.error = n, | |
| X | |
| } | |
| } | |
| function $(e, n, r, i) { | |
| var s = t(r), o, u, a, f; | |
| if (s) { | |
| o = V(r, i), | |
| o === X ? (f = !0, | |
| u = o.error, | |
| o = null ) : a = !0; | |
| if (n === o) { | |
| R(n, _()); | |
| return | |
| } | |
| } else | |
| o = i, | |
| a = !0; | |
| n._state === k && (s && a ? F(n, o) : f ? R(n, u) : e === L ? q(n, o) : e === A && R(n, o)) | |
| } | |
| function J(e, t) { | |
| try { | |
| t(function(n) { | |
| F(e, n) | |
| }, function(n) { | |
| R(e, n) | |
| }) | |
| } catch (n) { | |
| R(e, n) | |
| } | |
| } | |
| function K(e, t) { | |
| var n = this; | |
| n._instanceConstructor = e, | |
| n.promise = new e(C), | |
| n._validateInput(t) ? (n._input = t, | |
| n.length = t.length, | |
| n._remaining = t.length, | |
| n._init(), | |
| n.length === 0 ? q(n.promise, n._result) : (n.length = n.length || 0, | |
| n._enumerate(), | |
| n._remaining === 0 && q(n.promise, n._result))) : R(n.promise, n._validationError()) | |
| } | |
| function G(e) { | |
| return (new Q(this,e)).promise | |
| } | |
| function Z(e) { | |
| function s(e) { | |
| F(n, e) | |
| } | |
| function o(e) { | |
| R(n, e) | |
| } | |
| var t = this | |
| , n = new t(C); | |
| if (!i(e)) | |
| return R(n, new TypeError("You must pass an array to race.")), | |
| n; | |
| var r = e.length; | |
| for (var u = 0; n._state === k && u < r; u++) | |
| U(t.resolve(e[u]), undefined, s, o); | |
| return n | |
| } | |
| function tt(e) { | |
| var t = this; | |
| if (e && typeof e == "object" && e.constructor === t) | |
| return e; | |
| var n = new t(C); | |
| return F(n, e), | |
| n | |
| } | |
| function rt(e) { | |
| var t = this | |
| , n = new t(C); | |
| return R(n, e), | |
| n | |
| } | |
| function ot() { | |
| throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") | |
| } | |
| function ut() { | |
| throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") | |
| } | |
| function ft(e) { | |
| this._id = st++, | |
| this._state = undefined, | |
| this._result = undefined, | |
| this._subscribers = [], | |
| C !== e && (t(e) || ot(), | |
| this instanceof ft || ut(), | |
| J(this, e)) | |
| } | |
| function lt() { | |
| var e; | |
| if (typeof global != "undefined") | |
| e = global; | |
| else if (typeof self != "undefined") | |
| e = self; | |
| else | |
| try { | |
| e = Function("return this")() | |
| } catch (t) { | |
| throw new Error("polyfill failed because global object is unavailable in this environment") | |
| } | |
| var n = e.Promise; | |
| if (n && Object.prototype.toString.call(n.resolve()) === "[object Promise]" && !n.cast) | |
| return; | |
| e.Promise = at | |
| } | |
| var r; | |
| Array.isArray ? r = Array.isArray : r = function(e) { | |
| return Object.prototype.toString.call(e) === "[object Array]" | |
| } | |
| ; | |
| var i = r, s = 0, o = {}.toString, u, a, f = function(t, n) { | |
| S[s] = t, | |
| S[s + 1] = n, | |
| s += 2, | |
| s === 2 && (a ? a(x) : N()) | |
| } | |
| , h = typeof window != "undefined" ? window : undefined, p = h || {}, d = p.MutationObserver || p.WebKitMutationObserver, v = typeof process != "undefined" && {}.toString.call(process) === "[object process]", m = typeof Uint8ClampedArray != "undefined" && typeof importScripts != "undefined" && typeof MessageChannel != "undefined", S = new Array(1e3), N; | |
| v ? N = g() : d ? N = b() : m ? N = w() : h === undefined && typeof require == "function" ? N = T() : N = E(); | |
| var k = void 0 | |
| , L = 1 | |
| , A = 2 | |
| , O = new W | |
| , X = new W; | |
| K.prototype._validateInput = function(e) { | |
| return i(e) | |
| } | |
| , | |
| K.prototype._validationError = function() { | |
| return new Error("Array Methods must be provided an Array") | |
| } | |
| , | |
| K.prototype._init = function() { | |
| this._result = new Array(this.length) | |
| } | |
| ; | |
| var Q = K; | |
| K.prototype._enumerate = function() { | |
| var e = this | |
| , t = e.length | |
| , n = e.promise | |
| , r = e._input; | |
| for (var i = 0; n._state === k && i < t; i++) | |
| e._eachEntry(r[i], i) | |
| } | |
| , | |
| K.prototype._eachEntry = function(e, t) { | |
| var r = this | |
| , i = r._instanceConstructor; | |
| n(e) ? e.constructor === i && e._state !== k ? (e._onerror = null , | |
| r._settledAt(e._state, t, e._result)) : r._willSettleAt(i.resolve(e), t) : (r._remaining--, | |
| r._result[t] = e) | |
| } | |
| , | |
| K.prototype._settledAt = function(e, t, n) { | |
| var r = this | |
| , i = r.promise; | |
| i._state === k && (r._remaining--, | |
| e === A ? R(i, n) : r._result[t] = n), | |
| r._remaining === 0 && q(i, r._result) | |
| } | |
| , | |
| K.prototype._willSettleAt = function(e, t) { | |
| var n = this; | |
| U(e, undefined, function(e) { | |
| n._settledAt(L, t, e) | |
| }, function(e) { | |
| n._settledAt(A, t, e) | |
| }) | |
| } | |
| ; | |
| var Y = G | |
| , et = Z | |
| , nt = tt | |
| , it = rt | |
| , st = 0 | |
| , at = ft; | |
| ft.all = Y, | |
| ft.race = et, | |
| ft.resolve = nt, | |
| ft.reject = it, | |
| ft._setScheduler = l, | |
| ft._setAsap = c, | |
| ft._asap = f, | |
| ft.prototype = { | |
| constructor: ft, | |
| then: function(e, t) { | |
| var n = this | |
| , r = n._state; | |
| if (r === L && !e || r === A && !t) | |
| return this; | |
| var i = new this.constructor(C) | |
| , s = n._result; | |
| if (r) { | |
| var o = arguments[r - 1]; | |
| f(function() { | |
| $(r, i, o, s) | |
| }) | |
| } else | |
| U(n, i, e, t); | |
| return i | |
| }, | |
| "catch": function(e) { | |
| return this.then(null , e) | |
| } | |
| }; | |
| var ct = lt | |
| , ht = { | |
| Promise: at, | |
| polyfill: ct | |
| }; | |
| typeof define == "function" && define.amd ? define("es6-promise/dist/es6-promise", [], function() { | |
| return ht | |
| }) : typeof module != "undefined" && module.exports ? module.exports = ht : typeof this != "undefined" && (this.ES6Promise = ht), | |
| ct() | |
| } | |
| .call(this), | |
| define("es6-promise", ["es6-promise/dist/es6-promise"], function(e) { | |
| return e | |
| }), | |
| function(e) { | |
| var t = e.HTMLCanvasElement && e.HTMLCanvasElement.prototype | |
| , n = e.Blob && function() { | |
| try { | |
| return Boolean(new Blob) | |
| } catch (e) { | |
| return !1 | |
| } | |
| }() | |
| , r = n && e.Uint8Array && function() { | |
| try { | |
| return (new Blob([new Uint8Array(100)])).size === 100 | |
| } catch (e) { | |
| return !1 | |
| } | |
| }() | |
| , i = e.BlobBuilder || e.WebKitBlobBuilder || e.MozBlobBuilder || e.MSBlobBuilder | |
| , s = /^data:((.*?)(;charset=.*?)?)(;base64)?,/ | |
| , o = (n || i) && e.atob && e.ArrayBuffer && e.Uint8Array && function(e) { | |
| var t, o, u, a, f, l, c, h, p; | |
| t = e.match(s); | |
| if (!t) | |
| throw new Error("invalid data URI"); | |
| o = t[2] ? t[1] : "text/plain" + (t[3] || ";charset=US-ASCII"), | |
| u = !!t[4], | |
| a = e.slice(t[0].length), | |
| u ? f = atob(a) : f = decodeURIComponent(a), | |
| l = new ArrayBuffer(f.length), | |
| c = new Uint8Array(l); | |
| for (h = 0; h < f.length; h += 1) | |
| c[h] = f.charCodeAt(h); | |
| return n ? new Blob([r ? c : l],{ | |
| type: o | |
| }) : (p = new i, | |
| p.append(l), | |
| p.getBlob(o)) | |
| } | |
| ; | |
| e.HTMLCanvasElement && !t.toBlob && (t.mozGetAsFile ? t.toBlob = function(e, n, r) { | |
| r && t.toDataURL && o ? e(o(this.toDataURL(n, r))) : e(this.mozGetAsFile("blob", n)) | |
| } | |
| : t.toDataURL && o && (t.toBlob = function(e, t, n) { | |
| e(o(this.toDataURL(t, n))) | |
| } | |
| )), | |
| typeof define == "function" && define.amd ? define("vendor/canvas-to-blob", [], function() { | |
| return o | |
| }) : typeof module == "object" && module.exports ? module.exports = o : e.dataURLtoBlob = o | |
| }(window), | |
| define("helpers/polyfills", ["require", "utils/common/stringPolyfills", "es6-promise", "vendor/canvas-to-blob"], function(e) { | |
| var t = e("utils/common/stringPolyfills"); | |
| e("es6-promise").polyfill(), | |
| e("vendor/canvas-to-blob"), | |
| Function.prototype.name === undefined && Object.defineProperty(Function.prototype, "name", { | |
| get: function() { | |
| try { | |
| return this.toString().match(/\s*function\s+([_\$\w\d]*)\.*/)[1] | |
| } catch (e) { | |
| return "" | |
| } | |
| } | |
| }), | |
| String.prototype.localeCompare === undefined && (String.prototype.localeCompare = t.localeCompare) | |
| }), | |
| function() { | |
| function At(e, t) { | |
| if (e !== t) { | |
| var n = e === e | |
| , r = t === t; | |
| if (e > t || !n || typeof e == "undefined" && r) | |
| return 1; | |
| if (e < t || !r || typeof t == "undefined" && n) | |
| return -1 | |
| } | |
| return 0 | |
| } | |
| function Ot(e, t, n) { | |
| var r = e.length | |
| , i = n ? r : -1; | |
| while (n ? i-- : ++i < r) | |
| if (t(e[i], i, e)) | |
| return i; | |
| return -1 | |
| } | |
| function Mt(e, t, n) { | |
| if (t !== t) | |
| return Ut(e, n); | |
| var r = n - 1 | |
| , i = e.length; | |
| while (++r < i) | |
| if (e[r] === t) | |
| return r; | |
| return -1 | |
| } | |
| function _t(e) { | |
| return typeof e == "function" || !1 | |
| } | |
| function Dt(e) { | |
| return typeof e == "string" ? e : e == null ? "" : e + "" | |
| } | |
| function Pt(e) { | |
| return e.charCodeAt(0) | |
| } | |
| function Ht(e, t) { | |
| var n = -1 | |
| , r = e.length; | |
| while (++n < r && t.indexOf(e.charAt(n)) > -1) | |
| ; | |
| return n | |
| } | |
| function Bt(e, t) { | |
| var n = e.length; | |
| while (n-- && t.indexOf(e.charAt(n)) > -1) | |
| ; | |
| return n | |
| } | |
| function jt(e, t) { | |
| return At(e.criteria, t.criteria) || e.index - t.index | |
| } | |
| function Ft(e, t, n) { | |
| var r = -1 | |
| , i = e.criteria | |
| , s = t.criteria | |
| , o = i.length | |
| , u = n.length; | |
| while (++r < o) { | |
| var a = At(i[r], s[r]); | |
| if (a) | |
| return r >= u ? a : a * (n[r] ? 1 : -1) | |
| } | |
| return e.index - t.index | |
| } | |
| function It(e) { | |
| return gt[e] | |
| } | |
| function qt(e) { | |
| return yt[e] | |
| } | |
| function Rt(e) { | |
| return "\\" + Et[e] | |
| } | |
| function Ut(e, t, n) { | |
| var r = e.length | |
| , i = t + (n ? 0 : -1); | |
| while (n ? i-- : ++i < r) { | |
| var s = e[i]; | |
| if (s !== s) | |
| return i | |
| } | |
| return -1 | |
| } | |
| function Wt(e) { | |
| return !!e && typeof e == "object" | |
| } | |
| function Xt(e) { | |
| return e <= 160 && e >= 9 && e <= 13 || e == 32 || e == 160 || e == 5760 || e == 6158 || e >= 8192 && (e <= 8202 || e == 8232 || e == 8233 || e == 8239 || e == 8287 || e == 12288 || e == 65279) | |
| } | |
| function Vt(e, t) { | |
| var n = -1 | |
| , r = e.length | |
| , i = -1 | |
| , s = []; | |
| while (++n < r) | |
| e[n] === t && (e[n] = b, | |
| s[++i] = n); | |
| return s | |
| } | |
| function $t(e, t) { | |
| var n, r = -1, i = e.length, s = -1, o = []; | |
| while (++r < i) { | |
| var u = e[r] | |
| , a = t ? t(u, r, e) : u; | |
| if (!r || n !== a) | |
| n = a, | |
| o[++s] = u | |
| } | |
| return o | |
| } | |
| function Jt(e) { | |
| var t = -1 | |
| , n = e.length; | |
| while (++t < n && Xt(e.charCodeAt(t))) | |
| ; | |
| return t | |
| } | |
| function Kt(e) { | |
| var t = e.length; | |
| while (t-- && Xt(e.charCodeAt(t))) | |
| ; | |
| return t | |
| } | |
| function Qt(e) { | |
| return bt[e] | |
| } | |
| function Gt(C) { | |
| function zn(e) { | |
| if (Wt(e) && !ru(e) && !(e instanceof $n)) { | |
| if (e instanceof Xn) | |
| return e; | |
| if (nn.call(e, "__chain__") && nn.call(e, "__wrapped__")) | |
| return ls(e) | |
| } | |
| return new Xn(e) | |
| } | |
| function Wn() {} | |
| function Xn(e, t, n) { | |
| this.__wrapped__ = e, | |
| this.__actions__ = n || [], | |
| this.__chain__ = !!t | |
| } | |
| function $n(e) { | |
| this.__wrapped__ = e, | |
| this.__actions__ = null , | |
| this.__dir__ = 1, | |
| this.__dropCount__ = 0, | |
| this.__filtered__ = !1, | |
| this.__iteratees__ = null , | |
| this.__takeCount__ = Dn, | |
| this.__views__ = null | |
| } | |
| function Jn() { | |
| var e = this.__actions__ | |
| , t = this.__iteratees__ | |
| , n = this.__views__ | |
| , r = new $n(this.__wrapped__); | |
| return r.__actions__ = e ? sr(e) : null , | |
| r.__dir__ = this.__dir__, | |
| r.__filtered__ = this.__filtered__, | |
| r.__iteratees__ = t ? sr(t) : null , | |
| r.__takeCount__ = this.__takeCount__, | |
| r.__views__ = n ? sr(n) : null , | |
| r | |
| } | |
| function Kn() { | |
| if (this.__filtered__) { | |
| var e = new $n(this); | |
| e.__dir__ = -1, | |
| e.__filtered__ = !0 | |
| } else | |
| e = this.clone(), | |
| e.__dir__ *= -1; | |
| return e | |
| } | |
| function Qn() { | |
| var e = this.__wrapped__.value(); | |
| if (!ru(e)) | |
| return oi(e, this.__actions__); | |
| var t = this.__dir__ | |
| , n = t < 0 | |
| , r = Vi(0, e.length, this.__views__) | |
| , i = r.start | |
| , s = r.end | |
| , o = s - i | |
| , u = n ? s : i - 1 | |
| , a = kn(o, this.__takeCount__) | |
| , f = this.__iteratees__ | |
| , l = f ? f.length : 0 | |
| , c = 0 | |
| , h = []; | |
| e: while (o-- && c < a) { | |
| u += t; | |
| var p = -1 | |
| , d = e[u]; | |
| while (++p < l) { | |
| var y = f[p] | |
| , b = y.iteratee | |
| , w = y.type; | |
| if (w == v) { | |
| y.done && (n ? u > y.index : u < y.index) && (y.count = 0, | |
| y.done = !1), | |
| y.index = u; | |
| if (!y.done) { | |
| var E = y.limit; | |
| if (!(y.done = E > -1 ? y.count++ >= E : !b(d))) | |
| continue e | |
| } | |
| } else { | |
| var S = b(d); | |
| if (w == g) | |
| d = S; | |
| else if (!S) { | |
| if (w == m) | |
| continue e;break e | |
| } | |
| } | |
| } | |
| h[c++] = d | |
| } | |
| return h | |
| } | |
| function Gn() { | |
| this.__data__ = {} | |
| } | |
| function Yn(e) { | |
| return this.has(e) && delete this.__data__[e] | |
| } | |
| function Zn(t) { | |
| return t == "__proto__" ? e : this.__data__[t] | |
| } | |
| function er(e) { | |
| return e != "__proto__" && nn.call(this.__data__, e) | |
| } | |
| function tr(e, t) { | |
| return e != "__proto__" && (this.__data__[e] = t), | |
| this | |
| } | |
| function nr(e) { | |
| var t = e ? e.length : 0; | |
| this.data = { | |
| hash: xn(null ), | |
| set: new mn | |
| }; | |
| while (t--) | |
| this.push(e[t]) | |
| } | |
| function rr(e, t) { | |
| var n = e.data | |
| , r = typeof t == "string" || hu(t) ? n.set.has(t) : n.hash[t]; | |
| return r ? 0 : -1 | |
| } | |
| function ir(e) { | |
| var t = this.data; | |
| typeof e == "string" || hu(e) ? t.set.add(e) : t.hash[e] = !0 | |
| } | |
| function sr(e, t) { | |
| var n = -1 | |
| , r = e.length; | |
| t || (t = O(r)); | |
| while (++n < r) | |
| t[n] = e[n]; | |
| return t | |
| } | |
| function or(e, t) { | |
| var n = -1 | |
| , r = e.length; | |
| while (++n < r) | |
| if (t(e[n], n, e) === !1) | |
| break; | |
| return e | |
| } | |
| function ur(e, t) { | |
| var n = e.length; | |
| while (n--) | |
| if (t(e[n], n, e) === !1) | |
| break; | |
| return e | |
| } | |
| function ar(e, t) { | |
| var n = -1 | |
| , r = e.length; | |
| while (++n < r) | |
| if (!t(e[n], n, e)) | |
| return !1; | |
| return !0 | |
| } | |
| function fr(e, t) { | |
| var n = -1 | |
| , r = e.length | |
| , i = -1 | |
| , s = []; | |
| while (++n < r) { | |
| var o = e[n]; | |
| t(o, n, e) && (s[++i] = o) | |
| } | |
| return s | |
| } | |
| function lr(e, t) { | |
| var n = -1 | |
| , r = e.length | |
| , i = O(r); | |
| while (++n < r) | |
| i[n] = t(e[n], n, e); | |
| return i | |
| } | |
| function cr(e) { | |
| var t = -1 | |
| , n = e.length | |
| , r = _n; | |
| while (++t < n) { | |
| var i = e[t]; | |
| i > r && (r = i) | |
| } | |
| return r | |
| } | |
| function hr(e) { | |
| var t = -1 | |
| , n = e.length | |
| , r = Dn; | |
| while (++t < n) { | |
| var i = e[t]; | |
| i < r && (r = i) | |
| } | |
| return r | |
| } | |
| function pr(e, t, n, r) { | |
| var i = -1 | |
| , s = e.length; | |
| r && s && (n = e[++i]); | |
| while (++i < s) | |
| n = t(n, e[i], i, e); | |
| return n | |
| } | |
| function dr(e, t, n, r) { | |
| var i = e.length; | |
| r && i && (n = e[--i]); | |
| while (i--) | |
| n = t(n, e[i], i, e); | |
| return n | |
| } | |
| function vr(e, t) { | |
| var n = -1 | |
| , r = e.length; | |
| while (++n < r) | |
| if (t(e[n], n, e)) | |
| return !0; | |
| return !1 | |
| } | |
| function mr(e) { | |
| var t = e.length | |
| , n = 0; | |
| while (t--) | |
| n += +e[t] || 0; | |
| return n | |
| } | |
| function gr(e, t) { | |
| return typeof e == "undefined" ? t : e | |
| } | |
| function yr(e, t, n, r) { | |
| return typeof e == "undefined" || !nn.call(r, n) ? t : e | |
| } | |
| function br(e, t, n) { | |
| var r = ju(t); | |
| if (!n) | |
| return Er(t, e, r); | |
| var i = -1 | |
| , s = r.length; | |
| while (++i < s) { | |
| var o = r[i] | |
| , u = e[o] | |
| , a = n(u, t[o], o, e, t); | |
| if ((a === a ? a !== u : u === u) || typeof u == "undefined" && !(o in e)) | |
| e[o] = a | |
| } | |
| return e | |
| } | |
| function wr(t, n) { | |
| var r = -1 | |
| , i = t.length | |
| , s = Zi(i) | |
| , o = n.length | |
| , u = O(o); | |
| while (++r < o) { | |
| var a = n[r]; | |
| s ? (a = parseFloat(a), | |
| u[r] = Qi(a, i) ? t[a] : e) : u[r] = t[a] | |
| } | |
| return u | |
| } | |
| function Er(e, t, n) { | |
| n || (n = t, | |
| t = {}); | |
| var r = -1 | |
| , i = n.length; | |
| while (++r < i) { | |
| var s = n[r]; | |
| t[s] = e[s] | |
| } | |
| return t | |
| } | |
| function Sr(e, t, n) { | |
| var r = typeof e; | |
| return r == "function" ? typeof t == "undefined" ? e : fi(e, t, n) : e == null ? Ea : r == "object" ? Wr(e) : typeof t == "undefined" ? Jr(e + "") : Xr(e + "", t) | |
| } | |
| function xr(e, t, n, r, i, s, o) { | |
| var u; | |
| n && (u = i ? n(e, r, i) : n(e)); | |
| if (typeof u != "undefined") | |
| return u; | |
| if (!hu(e)) | |
| return e; | |
| var a = ru(e); | |
| if (a) { | |
| u = $i(e); | |
| if (!t) | |
| return sr(e, u) | |
| } else { | |
| var f = sn.call(e) | |
| , l = f == N; | |
| if (!(f == L || f == w || l && !i)) | |
| return vt[f] ? Ki(e, f, t) : i ? e : {}; | |
| if (zt(e)) | |
| return i ? e : {}; | |
| u = Ji(l ? {} : e); | |
| if (!t) | |
| return Er(e, u, ju(e)) | |
| } | |
| s || (s = []), | |
| o || (o = []); | |
| var c = s.length; | |
| while (c--) | |
| if (s[c] == e) | |
| return o[c]; | |
| return s.push(e), | |
| o.push(u), | |
| (a ? or : jr)(e, function(r, i) { | |
| u[i] = xr(r, t, n, i, e, s, o) | |
| }), | |
| u | |
| } | |
| function Nr(t, n, r) { | |
| if (typeof t != "function") | |
| throw new Tt(y); | |
| return gn(function() { | |
| t.apply(e, r) | |
| }, n) | |
| } | |
| function Cr(e, t) { | |
| var n = e ? e.length : 0 | |
| , r = []; | |
| if (!n) | |
| return r; | |
| var i = -1 | |
| , s = Xi() | |
| , o = s == Mt | |
| , u = o && t.length >= 200 ? yi(t) : null | |
| , a = t.length; | |
| u && (s = rr, | |
| o = !1, | |
| t = u); | |
| e: while (++i < n) { | |
| var f = e[i]; | |
| if (o && f === f) { | |
| var l = a; | |
| while (l--) | |
| if (t[l] === f) | |
| continue e; | |
| r.push(f) | |
| } else | |
| s(t, f, 0) < 0 && r.push(f) | |
| } | |
| return r | |
| } | |
| function Ar(e, t) { | |
| var n = !0; | |
| return kr(e, function(e, r, i) { | |
| return n = !!t(e, r, i), | |
| n | |
| }), | |
| n | |
| } | |
| function Or(e, t, n, r) { | |
| var i = e.length; | |
| n = n == null ? 0 : +n || 0, | |
| n < 0 && (n = -n > i ? 0 : i + n), | |
| r = typeof r == "undefined" || r > i ? i : +r || 0, | |
| r < 0 && (r += i), | |
| i = n > r ? 0 : r >>> 0, | |
| n >>>= 0; | |
| while (n < i) | |
| e[n++] = t; | |
| return e | |
| } | |
| function Mr(e, t) { | |
| var n = []; | |
| return kr(e, function(e, r, i) { | |
| t(e, r, i) && n.push(e) | |
| }), | |
| n | |
| } | |
| function _r(e, t, n, r) { | |
| var i; | |
| return n(e, function(e, n, s) { | |
| if (t(e, n, s)) | |
| return i = r ? n : e, | |
| !1 | |
| }), | |
| i | |
| } | |
| function Dr(e, t, n) { | |
| var r = -1 | |
| , i = e.length | |
| , s = -1 | |
| , o = []; | |
| while (++r < i) { | |
| var u = e[r]; | |
| if (Wt(u) && Zi(u.length) && (ru(u) || nu(u))) { | |
| t && (u = Dr(u, t, n)); | |
| var a = -1 | |
| , f = u.length; | |
| o.length += f; | |
| while (++a < f) | |
| o[++s] = u[a] | |
| } else | |
| n || (o[++s] = u) | |
| } | |
| return o | |
| } | |
| function Br(e, t) { | |
| return Pr(e, t, Fu) | |
| } | |
| function jr(e, t) { | |
| return Pr(e, t, ju) | |
| } | |
| function Fr(e, t) { | |
| return Hr(e, t, ju) | |
| } | |
| function Ir(e, t) { | |
| var n = -1 | |
| , r = t.length | |
| , i = -1 | |
| , s = []; | |
| while (++n < r) { | |
| var o = t[n]; | |
| cu(e[o]) && (s[++i] = o) | |
| } | |
| return s | |
| } | |
| function qr(e, t, n, r, i, s) { | |
| if (e === t) | |
| return e !== 0 || 1 / e == 1 / t; | |
| var o = typeof e | |
| , u = typeof t; | |
| return o != "function" && o != "object" && u != "function" && u != "object" || e == null || t == null ? e !== e && t !== t : Rr(e, t, qr, n, r, i, s) | |
| } | |
| function Rr(e, t, n, r, i, s, o) { | |
| var u = ru(e) | |
| , a = ru(t) | |
| , f = E | |
| , l = E; | |
| u || (f = sn.call(e), | |
| f == w ? f = L : f != L && (u = Eu(e))), | |
| a || (l = sn.call(t), | |
| l == w ? l = L : l != L && (a = Eu(t))); | |
| var c = (f == L || i && f == N) && !zt(e) | |
| , h = (l == L || i && l == N) && !zt(t) | |
| , p = f == l; | |
| if (p && !u && !c) | |
| return Ii(e, t, f); | |
| if (i) { | |
| if (!p && (!c || !h)) | |
| return !1 | |
| } else { | |
| var d = c && nn.call(e, "__wrapped__") | |
| , v = h && nn.call(t, "__wrapped__"); | |
| if (d || v) | |
| return n(d ? e.value() : e, v ? t.value() : t, r, i, s, o); | |
| if (!p) | |
| return !1 | |
| } | |
| s || (s = []), | |
| o || (o = []); | |
| var m = s.length; | |
| while (m--) | |
| if (s[m] == e) | |
| return o[m] == t; | |
| s.push(e), | |
| o.push(t); | |
| var g = (u ? Fi : qi)(e, t, n, r, i, s, o); | |
| return s.pop(), | |
| o.pop(), | |
| g | |
| } | |
| function Ur(t, n, r, i, s) { | |
| var o = -1 | |
| , u = n.length | |
| , a = !s; | |
| while (++o < u) | |
| if (a && i[o] ? r[o] !== t[n[o]] : !(n[o] in t)) | |
| return !1; | |
| o = -1; | |
| while (++o < u) { | |
| var f = n[o] | |
| , l = t[f] | |
| , c = r[o]; | |
| if (a && i[o]) | |
| var h = typeof l != "undefined" || f in t; | |
| else | |
| h = s ? s(l, c, f) : e, | |
| typeof h == "undefined" && (h = qr(c, l, s, !0)); | |
| if (!h) | |
| return !1 | |
| } | |
| return !0 | |
| } | |
| function zr(e, t) { | |
| var n = []; | |
| return kr(e, function(e, r, i) { | |
| n.push(t(e, r, i)) | |
| }), | |
| n | |
| } | |
| function Wr(e) { | |
| var t = ju(e) | |
| , n = t.length; | |
| if (!n) | |
| return wa(!0); | |
| if (n == 1) { | |
| var r = t[0] | |
| , i = e[r]; | |
| if (es(i)) | |
| return function(e) { | |
| return e != null && e[r] === i && (typeof i != "undefined" || r in fs(e)) | |
| } | |
| } | |
| var s = O(n) | |
| , o = O(n); | |
| while (n--) | |
| i = e[t[n]], | |
| s[n] = i, | |
| o[n] = es(i); | |
| return function(e) { | |
| return e != null && Ur(fs(e), t, s, o) | |
| } | |
| } | |
| function Xr(e, t) { | |
| return es(t) ? function(n) { | |
| return n != null && n[e] === t && (typeof t != "undefined" || e in fs(n)) | |
| } | |
| : function(n) { | |
| return n != null && qr(t, n[e], null , !0) | |
| } | |
| } | |
| function Vr(t, n, r, i, s) { | |
| if (!hu(t)) | |
| return t; | |
| var o = Zi(n.length) && (ru(n) || Eu(n)); | |
| return (o ? or : jr)(n, function(n, u, a) { | |
| if (Wt(n)) | |
| return i || (i = []), | |
| s || (s = []), | |
| $r(t, a, u, Vr, r, i, s); | |
| var f = t[u] | |
| , l = r ? r(f, n, u, t, a) : e | |
| , c = typeof l == "undefined"; | |
| c && (l = n), | |
| (o || typeof l != "undefined") && (c || (l === l ? l !== f : f === f)) && (t[u] = l) | |
| }), | |
| t | |
| } | |
| function $r(t, n, r, i, s, o, u) { | |
| var a = o.length | |
| , f = n[r]; | |
| while (a--) | |
| if (o[a] == f) { | |
| t[r] = u[a]; | |
| return | |
| } | |
| var l = t[r] | |
| , c = s ? s(l, f, r, t, n) : e | |
| , h = typeof c == "undefined"; | |
| h && (c = f, | |
| Zi(f.length) && (ru(f) || Eu(f)) ? c = ru(l) ? l : l && l.length ? sr(l) : [] : yu(f) || nu(f) ? c = nu(l) ? Tu(l) : yu(l) ? l : {} : h = !1), | |
| o.push(f), | |
| u.push(c); | |
| if (h) | |
| t[r] = i(c, f, s, o, u); | |
| else if (c === c ? c !== l : l === l) | |
| t[r] = c | |
| } | |
| function Jr(t) { | |
| return function(n) { | |
| return n == null ? e : n[t] | |
| } | |
| } | |
| function Kr(e, t) { | |
| return e + hn(Mn() * (t - e + 1)) | |
| } | |
| function Qr(e, t, n, r, i) { | |
| return i(e, function(e, i, s) { | |
| n = r ? (r = !1, | |
| e) : t(n, e, i, s) | |
| }), | |
| n | |
| } | |
| function Yr(e, t, n) { | |
| var r = -1 | |
| , i = e.length; | |
| t = t == null ? 0 : +t || 0, | |
| t < 0 && (t = -t > i ? 0 : i + t), | |
| n = typeof n == "undefined" || n > i ? i : +n || 0, | |
| n < 0 && (n += i), | |
| i = t > n ? 0 : n - t >>> 0, | |
| t >>>= 0; | |
| var s = O(i); | |
| while (++r < i) | |
| s[r] = e[r + t]; | |
| return s | |
| } | |
| function Zr(e, t) { | |
| var n; | |
| return kr(e, function(e, r, i) { | |
| return n = t(e, r, i), | |
| !n | |
| }), | |
| !!n | |
| } | |
| function ei(e, t) { | |
| var n = e.length; | |
| e.sort(t); | |
| while (n--) | |
| e[n] = e[n].value; | |
| return e | |
| } | |
| function ti(t, n, r) { | |
| var i = -1 | |
| , s = t.length | |
| , o = Zi(s) ? O(s) : []; | |
| return kr(t, function(t) { | |
| var r = n.length | |
| , s = O(r); | |
| while (r--) | |
| s[r] = t == null ? e : t[n[r]]; | |
| o[++i] = { | |
| criteria: s, | |
| index: i, | |
| value: t | |
| } | |
| }), | |
| ei(o, function(e, t) { | |
| return Ft(e, t, r) | |
| }) | |
| } | |
| function ni(e, t) { | |
| var n = 0; | |
| return kr(e, function(e, r, i) { | |
| n += +t(e, r, i) || 0 | |
| }), | |
| n | |
| } | |
| function ri(e, t) { | |
| var n = -1 | |
| , r = Xi() | |
| , i = e.length | |
| , s = r == Mt | |
| , o = s && i >= 200 | |
| , u = o ? yi() : null | |
| , a = []; | |
| u ? (r = rr, | |
| s = !1) : (o = !1, | |
| u = t ? [] : a); | |
| e: while (++n < i) { | |
| var f = e[n] | |
| , l = t ? t(f, n, e) : f; | |
| if (s && f === f) { | |
| var c = u.length; | |
| while (c--) | |
| if (u[c] === l) | |
| continue e; | |
| t && u.push(l), | |
| a.push(f) | |
| } else | |
| r(u, l, 0) < 0 && ((t || o) && u.push(l), | |
| a.push(f)) | |
| } | |
| return a | |
| } | |
| function ii(e, t) { | |
| var n = -1 | |
| , r = t.length | |
| , i = O(r); | |
| while (++n < r) | |
| i[n] = e[t[n]]; | |
| return i | |
| } | |
| function si(e, t, n, r) { | |
| var i = e.length | |
| , s = r ? i : -1; | |
| while ((r ? s-- : ++s < i) && t(e[s], s, e)) | |
| ; | |
| return n ? Yr(e, r ? 0 : s, r ? s + 1 : i) : Yr(e, r ? s + 1 : 0, r ? i : s) | |
| } | |
| function oi(e, t) { | |
| var n = e; | |
| n instanceof $n && (n = n.value()); | |
| var r = -1 | |
| , i = t.length; | |
| while (++r < i) { | |
| var s = [n] | |
| , o = t[r]; | |
| dn.apply(s, o.args), | |
| n = o.func.apply(o.thisArg, s) | |
| } | |
| return n | |
| } | |
| function ui(e, t, n) { | |
| var r = 0 | |
| , i = e ? e.length : r; | |
| if (typeof t == "number" && t === t && i <= Bn) { | |
| while (r < i) { | |
| var s = r + i >>> 1 | |
| , o = e[s]; | |
| (n ? o <= t : o < t) ? r = s + 1 : i = s | |
| } | |
| return i | |
| } | |
| return ai(e, t, Ea, n) | |
| } | |
| function ai(e, t, n, r) { | |
| t = n(t); | |
| var i = 0 | |
| , s = e ? e.length : 0 | |
| , o = t !== t | |
| , u = typeof t == "undefined"; | |
| while (i < s) { | |
| var a = hn((i + s) / 2) | |
| , f = n(e[a]) | |
| , l = f === f; | |
| if (o) | |
| var c = l || r; | |
| else | |
| u ? c = l && (r || typeof f != "undefined") : c = r ? f <= t : f < t; | |
| c ? i = a + 1 : s = a | |
| } | |
| return kn(s, Hn) | |
| } | |
| function fi(e, t, n) { | |
| if (typeof e != "function") | |
| return Ea; | |
| if (typeof t == "undefined") | |
| return e; | |
| switch (n) { | |
| case 1: | |
| return function(n) { | |
| return e.call(t, n) | |
| } | |
| ; | |
| case 3: | |
| return function(n, r, i) { | |
| return e.call(t, n, r, i) | |
| } | |
| ; | |
| case 4: | |
| return function(n, r, i, s) { | |
| return e.call(t, n, r, i, s) | |
| } | |
| ; | |
| case 5: | |
| return function(n, r, i, s, o) { | |
| return e.call(t, n, r, i, s, o) | |
| } | |
| } | |
| return function() { | |
| return e.apply(t, arguments) | |
| } | |
| } | |
| function li(e) { | |
| return fn.call(e, 0) | |
| } | |
| function ci(e, t, n) { | |
| var r = n.length | |
| , i = -1 | |
| , s = Cn(e.length - r, 0) | |
| , o = -1 | |
| , u = t.length | |
| , a = O(s + u); | |
| while (++o < u) | |
| a[o] = t[o]; | |
| while (++i < r) | |
| a[n[i]] = e[i]; | |
| while (s--) | |
| a[o++] = e[i++]; | |
| return a | |
| } | |
| function hi(e, t, n) { | |
| var r = -1 | |
| , i = n.length | |
| , s = -1 | |
| , o = Cn(e.length - i, 0) | |
| , u = -1 | |
| , a = t.length | |
| , f = O(o + a); | |
| while (++s < o) | |
| f[s] = e[s]; | |
| var l = s; | |
| while (++u < a) | |
| f[l + u] = t[u]; | |
| while (++r < i) | |
| f[l + n[r]] = e[s++]; | |
| return f | |
| } | |
| function pi(e, t) { | |
| return function(n, r, i) { | |
| var s = t ? t() : {}; | |
| r = Ui(r, i, 3); | |
| if (ru(n)) { | |
| var o = -1 | |
| , u = n.length; | |
| while (++o < u) { | |
| var a = n[o]; | |
| e(s, a, r(a, o, n), n) | |
| } | |
| } else | |
| kr(n, function(t, n, i) { | |
| e(s, t, r(t, n, i), i) | |
| }); | |
| return s | |
| } | |
| } | |
| function di(e) { | |
| return function() { | |
| var t = arguments | |
| , n = t.length | |
| , r = t[0]; | |
| if (n < 2 || r == null ) | |
| return r; | |
| var i = t[n - 2] | |
| , s = t[n - 1] | |
| , o = t[3]; | |
| n > 3 && typeof i == "function" ? (i = fi(i, s, 5), | |
| n -= 2) : (i = n > 2 && typeof s == "function" ? s : null , | |
| n -= i ? 1 : 0), | |
| o && Gi(t[1], t[2], o) && (i = n == 3 ? null : i, | |
| n = 2); | |
| var u = 0; | |
| while (++u < n) { | |
| var a = t[u]; | |
| a && e(r, a, i) | |
| } | |
| return r | |
| } | |
| } | |
| function vi(e, t) { | |
| return function(n, r) { | |
| var i = n ? n.length : 0; | |
| if (!Zi(i)) | |
| return e(n, r); | |
| var s = t ? i : -1 | |
| , o = fs(n); | |
| while (t ? s-- : ++s < i) | |
| if (r(o[s], s, o) === !1) | |
| break; | |
| return n | |
| } | |
| } | |
| function mi(e) { | |
| return function(t, n, r) { | |
| var i = fs(t) | |
| , s = r(t) | |
| , o = s.length | |
| , u = e ? o : -1; | |
| while (e ? u-- : ++u < o) { | |
| var a = s[u]; | |
| if (n(i[a], a, i) === !1) | |
| break | |
| } | |
| return t | |
| } | |
| } | |
| function gi(e, t) { | |
| function r() { | |
| var i = this && this !== Lt && this instanceof r ? n : e; | |
| return i.apply(t, arguments) | |
| } | |
| var n = wi(e); | |
| return r | |
| } | |
| function bi(e) { | |
| return function(t) { | |
| var n = -1 | |
| , r = ga(Yu(t)) | |
| , i = r.length | |
| , s = ""; | |
| while (++n < i) | |
| s = e(s, r[n], n); | |
| return s | |
| } | |
| } | |
| function wi(e) { | |
| return function() { | |
| var t = Tr(e.prototype) | |
| , n = e.apply(t, arguments); | |
| return hu(n) ? n : t | |
| } | |
| } | |
| function Ei(e) { | |
| function t(n, r, i) { | |
| i && Gi(n, r, i) && (r = null ); | |
| var s = ji(n, e, null , null , null , null , null , r); | |
| return s.placeholder = t.placeholder, | |
| s | |
| } | |
| return t | |
| } | |
| function Si(e, t) { | |
| return function(n, r, i) { | |
| i && Gi(n, r, i) && (r = null ); | |
| var s = Ui() | |
| , o = r == null ; | |
| if (s !== Sr || !o) | |
| o = !1, | |
| r = s(r, i, 3); | |
| if (o) { | |
| var u = ru(n); | |
| if (!!u || !wu(n)) | |
| return e(u ? n : as(n)); | |
| r = Pt | |
| } | |
| return Ri(n, r, t) | |
| } | |
| } | |
| function xi(t, n) { | |
| return function(r, i, s) { | |
| i = Ui(i, s, 3); | |
| if (ru(r)) { | |
| var o = Ot(r, i, n); | |
| return o > -1 ? r[o] : e | |
| } | |
| return _r(r, i, t) | |
| } | |
| } | |
| function Ti(e) { | |
| return function(t, n, r) { | |
| return !t || !t.length ? -1 : (n = Ui(n, r, 3), | |
| Ot(t, n, e)) | |
| } | |
| } | |
| function Ni(e) { | |
| return function(t, n, r) { | |
| return n = Ui(n, r, 3), | |
| _r(t, n, e, !0) | |
| } | |
| } | |
| function Ci(e) { | |
| return function() { | |
| var t = arguments.length; | |
| if (!t) | |
| return function() { | |
| return arguments[0] | |
| } | |
| ; | |
| var n, r = e ? t : -1, i = 0, s = O(t); | |
| while (e ? r-- : ++r < t) { | |
| var o = s[i++] = arguments[r]; | |
| if (typeof o != "function") | |
| throw new Tt(y); | |
| var u = n ? "" : Wi(o); | |
| n = u == "wrapper" ? new Xn([]) : n | |
| } | |
| r = n ? -1 : t; | |
| while (++r < t) { | |
| o = s[r], | |
| u = Wi(o); | |
| var a = u == "wrapper" ? zi(o) : null ; | |
| a && Yi(a[0]) ? n = n[Wi(a[0])].apply(n, a[3]) : n = o.length == 1 && Yi(o) ? n[u]() : n.thru(o) | |
| } | |
| return function() { | |
| var e = arguments; | |
| if (n && e.length == 1 && ru(e[0])) | |
| return n.plant(e[0]).value(); | |
| var r = 0 | |
| , i = s[r].apply(this, e); | |
| while (++r < t) | |
| i = s[r].call(this, i); | |
| return i | |
| } | |
| } | |
| } | |
| function ki(e, t) { | |
| return function(n, r, i) { | |
| return typeof r == "function" && typeof i == "undefined" && ru(n) ? e(n, r) : t(n, fi(r, i, 3)) | |
| } | |
| } | |
| function Li(e) { | |
| return function(t, n, r) { | |
| if (typeof n != "function" || typeof r != "undefined") | |
| n = fi(n, r, 3); | |
| return e(t, n, Fu) | |
| } | |
| } | |
| function Ai(e) { | |
| return function(t, n, r) { | |
| if (typeof n != "function" || typeof r != "undefined") | |
| n = fi(n, r, 3); | |
| return e(t, n) | |
| } | |
| } | |
| function Oi(e) { | |
| return function(t, n, r) { | |
| return t = Dt(t), | |
| t && (e ? t : "") + Pi(t, n, r) + (e ? "" : t) | |
| } | |
| } | |
| function Mi(e) { | |
| var t = Qo(function(n, r) { | |
| var i = Vt(r, t.placeholder); | |
| return ji(n, e, null , r, i) | |
| }); | |
| return t | |
| } | |
| function _i(e, t) { | |
| return function(n, r, i, s) { | |
| var o = arguments.length < 3; | |
| return typeof r == "function" && typeof s == "undefined" && ru(n) ? e(n, r, i, o) : Qr(n, Ui(r, s, 4), i, o, t) | |
| } | |
| } | |
| function Di(t, l, c, h, p, d, v, m, g, y) { | |
| function k() { | |
| var i = arguments.length | |
| , s = i | |
| , o = O(i); | |
| while (s--) | |
| o[s] = arguments[s]; | |
| h && (o = ci(o, h, p)), | |
| d && (o = hi(o, d, v)); | |
| if (S || T) { | |
| var f = k.placeholder | |
| , L = Vt(o, f); | |
| i -= L.length; | |
| if (i < y) { | |
| var A = m ? sr(m) : null | |
| , M = Cn(y - i, 0) | |
| , _ = S ? L : null | |
| , D = S ? null : L | |
| , P = S ? o : null | |
| , H = S ? null : o; | |
| l |= S ? u : a, | |
| l &= ~(S ? a : u), | |
| x || (l &= ~(n | r)); | |
| var B = [t, l, c, P, _, H, D, A, g, M] | |
| , j = Di.apply(e, B); | |
| return Yi(t) && ss(j, B), | |
| j.placeholder = f, | |
| j | |
| } | |
| } | |
| var F = w ? c : this; | |
| E && (t = F[C]), | |
| m && (o = is(o, m)), | |
| b && g < o.length && (o.length = g); | |
| var I = this && this !== Lt && this instanceof k ? N || wi(t) : t; | |
| return I.apply(F, o) | |
| } | |
| var b = l & f | |
| , w = l & n | |
| , E = l & r | |
| , S = l & s | |
| , x = l & i | |
| , T = l & o | |
| , N = !E && wi(t) | |
| , C = t; | |
| return k | |
| } | |
| function Pi(e, t, n) { | |
| var r = e.length; | |
| t = +t; | |
| if (r >= t || !Tn(t)) | |
| return ""; | |
| var i = t - r; | |
| return n = n == null ? " " : n + "", | |
| ua(n, ln(i / n.length)).slice(0, i) | |
| } | |
| function Hi(e, t, r, i) { | |
| function u() { | |
| var t = -1 | |
| , n = arguments.length | |
| , a = -1 | |
| , f = i.length | |
| , l = O(n + f); | |
| while (++a < f) | |
| l[a] = i[a]; | |
| while (n--) | |
| l[a++] = arguments[++t]; | |
| var c = this && this !== Lt && this instanceof u ? o : e; | |
| return c.apply(s ? r : this, l) | |
| } | |
| var s = t & n | |
| , o = wi(e); | |
| return u | |
| } | |
| function Bi(e) { | |
| return function(t, n, r, i) { | |
| var s = Ui(r); | |
| return s === Sr && r == null ? ui(t, n, e) : ai(t, n, s(r, i, 1), e) | |
| } | |
| } | |
| function ji(t, i, s, o, f, l, c, h) { | |
| var p = i & r; | |
| if (!p && typeof t != "function") | |
| throw new Tt(y); | |
| var d = o ? o.length : 0; | |
| d || (i &= ~(u | a), | |
| o = f = null ), | |
| d -= f ? f.length : 0; | |
| if (i & a) { | |
| var v = o | |
| , m = f; | |
| o = f = null | |
| } | |
| var g = p ? null : zi(t) | |
| , b = [t, i, s, o, f, v, m, l, c, h]; | |
| g && (ts(b, g), | |
| i = b[1], | |
| h = b[9]), | |
| b[9] = h == null ? p ? 0 : t.length : Cn(h - d, 0) || 0; | |
| if (i == n) | |
| var w = gi(b[0], b[2]); | |
| else | |
| i != u && i != (n | u) || !!b[4].length ? w = Di.apply(e, b) : w = Hi.apply(e, b); | |
| var E = g ? Gr : ss; | |
| return E(w, b) | |
| } | |
| function Fi(t, n, r, i, s, o, u) { | |
| var a = -1 | |
| , f = t.length | |
| , l = n.length | |
| , c = !0; | |
| if (f != l && !(s && l > f)) | |
| return !1; | |
| while (c && ++a < f) { | |
| var h = t[a] | |
| , p = n[a]; | |
| c = e, | |
| i && (c = s ? i(p, h, a) : i(h, p, a)); | |
| if (typeof c == "undefined") | |
| if (s) { | |
| var d = l; | |
| while (d--) { | |
| p = n[d], | |
| c = h && h === p || r(h, p, i, s, o, u); | |
| if (c) | |
| break | |
| } | |
| } else | |
| c = h && h === p || r(h, p, i, s, o, u) | |
| } | |
| return !!c | |
| } | |
| function Ii(e, t, n) { | |
| switch (n) { | |
| case S: | |
| case x: | |
| return +e == +t; | |
| case T: | |
| return e.name == t.name && e.message == t.message; | |
| case k: | |
| return e != +e ? t != +t : e == 0 ? 1 / e == 1 / t : e == +t; | |
| case A: | |
| case M: | |
| return e == t + "" | |
| } | |
| return !1 | |
| } | |
| function qi(t, n, r, i, s, o, u) { | |
| var a = ju(t) | |
| , f = a.length | |
| , l = ju(n) | |
| , c = l.length; | |
| if (f != c && !s) | |
| return !1; | |
| var h = s | |
| , p = -1; | |
| while (++p < f) { | |
| var d = a[p] | |
| , v = s ? d in n : nn.call(n, d); | |
| if (v) { | |
| var m = t[d] | |
| , g = n[d]; | |
| v = e, | |
| i && (v = s ? i(g, m, d) : i(m, g, d)), | |
| typeof v == "undefined" && (v = m && m === g || r(m, g, i, s, o, u)) | |
| } | |
| if (!v) | |
| return !1; | |
| h || (h = d == "constructor") | |
| } | |
| if (!h) { | |
| var y = t.constructor | |
| , b = n.constructor; | |
| if (y != b && "constructor" in t && "constructor" in n && !(typeof y == "function" && y instanceof y && typeof b == "function" && b instanceof b)) | |
| return !1 | |
| } | |
| return !0 | |
| } | |
| function Ri(e, t, n) { | |
| var r = n ? Dn : _n | |
| , i = r | |
| , s = i; | |
| return kr(e, function(e, o, u) { | |
| var a = t(e, o, u); | |
| if ((n ? a < i : a > i) || a === r && a === s) | |
| i = a, | |
| s = e | |
| }), | |
| s | |
| } | |
| function Ui(e, t, n) { | |
| var r = zn.callback || ba; | |
| return r = r === ba ? Sr : r, | |
| n ? r(e, t, n) : r | |
| } | |
| function Xi(e, t, n) { | |
| var r = zn.indexOf || Ts; | |
| return r = r === Ts ? Mt : r, | |
| e ? r(e, t, n) : r | |
| } | |
| function Vi(e, t, n) { | |
| var r = -1 | |
| , i = n ? n.length : 0; | |
| while (++r < i) { | |
| var s = n[r] | |
| , o = s.size; | |
| switch (s.type) { | |
| case "drop": | |
| e += o; | |
| break; | |
| case "dropRight": | |
| t -= o; | |
| break; | |
| case "take": | |
| t = kn(t, e + o); | |
| break; | |
| case "takeRight": | |
| e = Cn(e, t - o) | |
| } | |
| } | |
| return { | |
| start: e, | |
| end: t | |
| } | |
| } | |
| function $i(e) { | |
| var t = e.length | |
| , n = new e.constructor(t); | |
| return t && typeof e[0] == "string" && nn.call(e, "index") && (n.index = e.index, | |
| n.input = e.input), | |
| n | |
| } | |
| function Ji(e) { | |
| var t = e.constructor; | |
| return typeof t == "function" && t instanceof t || (t = Et), | |
| new t | |
| } | |
| function Ki(e, t, n) { | |
| var r = e.constructor; | |
| switch (t) { | |
| case D: | |
| return li(e); | |
| case S: | |
| case x: | |
| return new r(+e); | |
| case P: | |
| case H: | |
| case B: | |
| case j: | |
| case F: | |
| case I: | |
| case q: | |
| case R: | |
| case U: | |
| r instanceof r && (r = Rn[t]); | |
| var i = e.buffer; | |
| return new r(n ? li(i) : i,e.byteOffset,e.length); | |
| case k: | |
| case M: | |
| return new r(e); | |
| case A: | |
| var s = new r(e.source,tt.exec(e)); | |
| s.lastIndex = e.lastIndex | |
| } | |
| return s | |
| } | |
| function Qi(e, t) { | |
| return e = +e, | |
| t = t == null ? Fn : t, | |
| e > -1 && e % 1 == 0 && e < t | |
| } | |
| function Gi(e, t, n) { | |
| if (!hu(n)) | |
| return !1; | |
| var r = typeof t; | |
| if (r == "number") | |
| var i = n.length | |
| , s = Zi(i) && Qi(t, i); | |
| else | |
| s = r == "string" && t in n; | |
| if (s) { | |
| var o = n[t]; | |
| return e === e ? e === o : o !== o | |
| } | |
| return !1 | |
| } | |
| function Yi(e) { | |
| var t = Wi(e); | |
| return !!t && e === zn[t] && t in $n.prototype | |
| } | |
| function Zi(e) { | |
| return typeof e == "number" && e > -1 && e % 1 == 0 && e <= Fn | |
| } | |
| function es(e) { | |
| return e === e && (e === 0 ? 1 / e > 0 : !hu(e)) | |
| } | |
| function ts(e, t) { | |
| var r = e[1] | |
| , o = t[1] | |
| , u = r | o | |
| , a = u < f | |
| , c = o == f && r == s || o == f && r == l && e[7].length <= t[8] || o == (f | l) && r == s; | |
| if (!a && !c) | |
| return e; | |
| o & n && (e[2] = t[2], | |
| u |= r & n ? 0 : i); | |
| var h = t[3]; | |
| if (h) { | |
| var p = e[3]; | |
| e[3] = p ? ci(p, h, t[4]) : sr(h), | |
| e[4] = p ? Vt(e[3], b) : sr(t[4]) | |
| } | |
| return h = t[5], | |
| h && (p = e[5], | |
| e[5] = p ? hi(p, h, t[6]) : sr(h), | |
| e[6] = p ? Vt(e[5], b) : sr(t[6])), | |
| h = t[7], | |
| h && (e[7] = sr(h)), | |
| o & f && (e[8] = e[8] == null ? t[8] : kn(e[8], t[8])), | |
| e[9] == null && (e[9] = t[9]), | |
| e[0] = t[0], | |
| e[1] = u, | |
| e | |
| } | |
| function ns(e, t) { | |
| e = fs(e); | |
| var n = -1 | |
| , r = t.length | |
| , i = {}; | |
| while (++n < r) { | |
| var s = t[n]; | |
| s in e && (i[s] = e[s]) | |
| } | |
| return i | |
| } | |
| function rs(e, t) { | |
| var n = {}; | |
| return Br(e, function(e, r, i) { | |
| t(e, r, i) && (n[r] = e) | |
| }), | |
| n | |
| } | |
| function is(t, n) { | |
| var r = t.length | |
| , i = kn(n.length, r) | |
| , s = sr(t); | |
| while (i--) { | |
| var o = n[i]; | |
| t[i] = Qi(o, r) ? s[o] : e | |
| } | |
| return t | |
| } | |
| function os(e) { | |
| var t, n = zn.support; | |
| if (!Wt(e) || sn.call(e) != L || !!zt(e) || !nn.call(e, "constructor") && (t = e.constructor, | |
| typeof t == "function" && !(t instanceof t)) || !n.argsTag && nu(e)) | |
| return !1; | |
| var r; | |
| return n.ownLast ? (Br(e, function(e, t, n) { | |
| return r = nn.call(n, t), | |
| !1 | |
| }), | |
| r !== !1) : (Br(e, function(e, t) { | |
| r = t | |
| }), | |
| typeof r == "undefined" || nn.call(e, r)) | |
| } | |
| function us(e) { | |
| var t = Fu(e) | |
| , n = t.length | |
| , r = n && e.length | |
| , i = zn.support | |
| , s = r && Zi(r) && (ru(e) || i.nonEnumStrings && wu(e) || i.nonEnumArgs && nu(e)) | |
| , o = -1 | |
| , u = []; | |
| while (++o < n) { | |
| var a = t[o]; | |
| (s && Qi(a, r) || nn.call(e, a)) && u.push(a) | |
| } | |
| return u | |
| } | |
| function as(e) { | |
| return e == null ? [] : Zi(e.length) ? zn.support.unindexedChars && wu(e) ? e.split("") : hu(e) ? e : Et(e) : Vu(e) | |
| } | |
| function fs(e) { | |
| if (zn.support.unindexedChars && wu(e)) { | |
| var t = -1 | |
| , n = e.length | |
| , r = Et(e); | |
| while (++t < n) | |
| r[t] = e.charAt(t); | |
| return r | |
| } | |
| return hu(e) ? e : Et(e) | |
| } | |
| function ls(e) { | |
| return e instanceof $n ? e.clone() : new Xn(e.__wrapped__,e.__chain__,sr(e.__actions__)) | |
| } | |
| function cs(e, t, n) { | |
| (n ? Gi(e, t, n) : t == null ) ? t = 1 : t = Cn(+t || 1, 1); | |
| var r = 0 | |
| , i = e ? e.length : 0 | |
| , s = -1 | |
| , o = O(ln(i / t)); | |
| while (r < i) | |
| o[++s] = Yr(e, r, r += t); | |
| return o | |
| } | |
| function hs(e) { | |
| var t = -1 | |
| , n = e ? e.length : 0 | |
| , r = -1 | |
| , i = []; | |
| while (++t < n) { | |
| var s = e[t]; | |
| s && (i[++r] = s) | |
| } | |
| return i | |
| } | |
| function ds(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return []; | |
| if (n ? Gi(e, t, n) : t == null ) | |
| t = 1; | |
| return Yr(e, t < 0 ? 0 : t) | |
| } | |
| function vs(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return []; | |
| if (n ? Gi(e, t, n) : t == null ) | |
| t = 1; | |
| return t = r - (+t || 0), | |
| Yr(e, 0, t < 0 ? 0 : t) | |
| } | |
| function ms(e, t, n) { | |
| return e && e.length ? si(e, Ui(t, n, 3), !0, !0) : [] | |
| } | |
| function gs(e, t, n) { | |
| return e && e.length ? si(e, Ui(t, n, 3), !0) : [] | |
| } | |
| function ys(e, t, n, r) { | |
| var i = e ? e.length : 0; | |
| return i ? (n && typeof n != "number" && Gi(e, t, n) && (n = 0, | |
| r = i), | |
| Or(e, t, n, r)) : [] | |
| } | |
| function Es(t) { | |
| return t ? t[0] : e | |
| } | |
| function Ss(e, t, n) { | |
| var r = e ? e.length : 0; | |
| return n && Gi(e, t, n) && (t = !1), | |
| r ? Dr(e, t) : [] | |
| } | |
| function xs(e) { | |
| var t = e ? e.length : 0; | |
| return t ? Dr(e, !0) : [] | |
| } | |
| function Ts(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return -1; | |
| if (typeof n == "number") | |
| n = n < 0 ? Cn(r + n, 0) : n; | |
| else if (n) { | |
| var i = ui(e, t) | |
| , s = e[i]; | |
| return (t === t ? t === s : s !== s) ? i : -1 | |
| } | |
| return Mt(e, t, n || 0) | |
| } | |
| function Ns(e) { | |
| return vs(e, 1) | |
| } | |
| function Cs() { | |
| var e = [] | |
| , t = -1 | |
| , n = arguments.length | |
| , r = [] | |
| , i = Xi() | |
| , s = i == Mt; | |
| while (++t < n) { | |
| var o = arguments[t]; | |
| if (ru(o) || nu(o)) | |
| e.push(o), | |
| r.push(s && o.length >= 120 ? yi(t && o) : null ) | |
| } | |
| n = e.length; | |
| var u = e[0] | |
| , a = -1 | |
| , f = u ? u.length : 0 | |
| , l = [] | |
| , c = r[0]; | |
| e: while (++a < f) { | |
| o = u[a]; | |
| if ((c ? rr(c, o) : i(l, o, 0)) < 0) { | |
| t = n; | |
| while (--t) { | |
| var h = r[t]; | |
| if ((h ? rr(h, o) : i(e[t], o, 0)) < 0) | |
| continue e | |
| } | |
| c && c.push(o), | |
| l.push(o) | |
| } | |
| } | |
| return l | |
| } | |
| function ks(t) { | |
| var n = t ? t.length : 0; | |
| return n ? t[n - 1] : e | |
| } | |
| function Ls(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return -1; | |
| var i = r; | |
| if (typeof n == "number") | |
| i = (n < 0 ? Cn(r + n, 0) : kn(n || 0, r - 1)) + 1; | |
| else if (n) { | |
| i = ui(e, t, !0) - 1; | |
| var s = e[i]; | |
| return (t === t ? t === s : s !== s) ? i : -1 | |
| } | |
| if (t !== t) | |
| return Ut(e, i, !0); | |
| while (i--) | |
| if (e[i] === t) | |
| return i; | |
| return -1 | |
| } | |
| function As() { | |
| var e = arguments | |
| , t = e[0]; | |
| if (!t || !t.length) | |
| return t; | |
| var n = 0 | |
| , r = Xi() | |
| , i = e.length; | |
| while (++n < i) { | |
| var s = 0 | |
| , o = e[n]; | |
| while ((s = r(t, o, s)) > -1) | |
| yn.call(t, s, 1) | |
| } | |
| return t | |
| } | |
| function Ms(e, t, n) { | |
| var r = -1 | |
| , i = e ? e.length : 0 | |
| , s = []; | |
| t = Ui(t, n, 3); | |
| while (++r < i) { | |
| var o = e[r]; | |
| t(o, r, e) && (s.push(o), | |
| yn.call(e, r--, 1), | |
| i--) | |
| } | |
| return s | |
| } | |
| function _s(e) { | |
| return ds(e, 1) | |
| } | |
| function Ds(e, t, n) { | |
| var r = e ? e.length : 0; | |
| return r ? (n && typeof n != "number" && Gi(e, t, n) && (t = 0, | |
| n = r), | |
| Yr(e, t, n)) : [] | |
| } | |
| function Bs(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return []; | |
| if (n ? Gi(e, t, n) : t == null ) | |
| t = 1; | |
| return Yr(e, 0, t < 0 ? 0 : t) | |
| } | |
| function js(e, t, n) { | |
| var r = e ? e.length : 0; | |
| if (!r) | |
| return []; | |
| if (n ? Gi(e, t, n) : t == null ) | |
| t = 1; | |
| return t = r - (+t || 0), | |
| Yr(e, t < 0 ? 0 : t) | |
| } | |
| function Fs(e, t, n) { | |
| return e && e.length ? si(e, Ui(t, n, 3), !1, !0) : [] | |
| } | |
| function Is(e, t, n) { | |
| return e && e.length ? si(e, Ui(t, n, 3)) : [] | |
| } | |
| function Rs(e, t, n, r) { | |
| var i = e ? e.length : 0; | |
| if (!i) | |
| return []; | |
| t != null && typeof t != "boolean" && (r = n, | |
| n = Gi(e, t, r) ? null : t, | |
| t = !1); | |
| var s = Ui(); | |
| if (s !== Sr || n != null ) | |
| n = s(n, r, 3); | |
| return t && Xi() == Mt ? $t(e, n) : ri(e, n) | |
| } | |
| function Us(e) { | |
| var t = -1 | |
| , n = (e && e.length && cr(lr(e, tn))) >>> 0 | |
| , r = O(n); | |
| while (++t < n) | |
| r[t] = lr(e, Jr(t)); | |
| return r | |
| } | |
| function Ws() { | |
| var e = -1 | |
| , t = arguments.length; | |
| while (++e < t) { | |
| var n = arguments[e]; | |
| if (ru(n) || nu(n)) | |
| var r = r ? Cr(r, n).concat(Cr(n, r)) : n | |
| } | |
| return r ? ri(r) : [] | |
| } | |
| function Vs(e, t) { | |
| var n = -1 | |
| , r = e ? e.length : 0 | |
| , i = {}; | |
| r && !t && !ru(e[0]) && (t = []); | |
| while (++n < r) { | |
| var s = e[n]; | |
| t ? i[s] = t[n] : s && (i[s[0]] = s[1]) | |
| } | |
| return i | |
| } | |
| function $s(e) { | |
| var t = zn(e); | |
| return t.__chain__ = !0, | |
| t | |
| } | |
| function Js(e, t, n) { | |
| return t.call(n, e), | |
| e | |
| } | |
| function Ks(e, t, n) { | |
| return t.call(n, e) | |
| } | |
| function Qs() { | |
| return $s(this) | |
| } | |
| function Gs() { | |
| return new Xn(this.value(),this.__chain__) | |
| } | |
| function Ys(e) { | |
| var t, n = this; | |
| while (n instanceof Wn) { | |
| var r = ls(n); | |
| t ? i.__wrapped__ = r : t = r; | |
| var i = r; | |
| n = n.__wrapped__ | |
| } | |
| return i.__wrapped__ = e, | |
| t | |
| } | |
| function Zs() { | |
| var e = this.__wrapped__; | |
| return e instanceof $n ? (this.__actions__.length && (e = new $n(this)), | |
| new Xn(e.reverse(),this.__chain__)) : this.thru(function(e) { | |
| return e.reverse() | |
| }) | |
| } | |
| function eo() { | |
| return this.value() + "" | |
| } | |
| function to() { | |
| return oi(this.__wrapped__, this.__actions__) | |
| } | |
| function io(e, t, n) { | |
| var r = ru(e) ? ar : Ar; | |
| n && Gi(e, t, n) && (t = null ); | |
| if (typeof t != "function" || typeof n != "undefined") | |
| t = Ui(t, n, 3); | |
| return r(e, t) | |
| } | |
| function so(e, t, n) { | |
| var r = ru(e) ? fr : Mr; | |
| return t = Ui(t, n, 3), | |
| r(e, t) | |
| } | |
| function ao(e, t) { | |
| return oo(e, Wr(t)) | |
| } | |
| function ho(e, t, n, r) { | |
| var i = e ? e.length : 0; | |
| return Zi(i) || (e = Vu(e), | |
| i = e.length), | |
| i ? (typeof n != "number" || r && Gi(t, n, r) ? n = 0 : n = n < 0 ? Cn(i + n, 0) : n || 0, | |
| typeof e == "string" || !ru(e) && wu(e) ? n < i && e.indexOf(t, n) > -1 : Xi(e, t, n) > -1) : !1 | |
| } | |
| function mo(e, t, n) { | |
| var r = ru(e) ? lr : zr; | |
| return t = Ui(t, n, 3), | |
| r(e, t) | |
| } | |
| function yo(e, t) { | |
| return mo(e, Jr(t)) | |
| } | |
| function Eo(e, t, n) { | |
| var r = ru(e) ? fr : Mr; | |
| return t = Ui(t, n, 3), | |
| r(e, function(e, n, r) { | |
| return !t(e, n, r) | |
| }) | |
| } | |
| function So(t, n, r) { | |
| if (r ? Gi(t, n, r) : n == null ) { | |
| t = as(t); | |
| var i = t.length; | |
| return i > 0 ? t[Kr(0, i - 1)] : e | |
| } | |
| var s = xo(t); | |
| return s.length = kn(n < 0 ? 0 : +n || 0, s.length), | |
| s | |
| } | |
| function xo(e) { | |
| e = as(e); | |
| var t = -1 | |
| , n = e.length | |
| , r = O(n); | |
| while (++t < n) { | |
| var i = Kr(0, t); | |
| t != i && (r[t] = r[i]), | |
| r[i] = e[t] | |
| } | |
| return r | |
| } | |
| function To(e) { | |
| var t = e ? e.length : 0; | |
| return Zi(t) ? t : ju(e).length | |
| } | |
| function No(e, t, n) { | |
| var r = ru(e) ? vr : Zr; | |
| n && Gi(e, t, n) && (t = null ); | |
| if (typeof t != "function" || typeof n != "undefined") | |
| t = Ui(t, n, 3); | |
| return r(e, t) | |
| } | |
| function Co(e, t, n) { | |
| if (e == null ) | |
| return []; | |
| var r = -1 | |
| , i = e.length | |
| , s = Zi(i) ? O(i) : []; | |
| return n && Gi(e, t, n) && (t = null ), | |
| t = Ui(t, n, 3), | |
| kr(e, function(e, n, i) { | |
| s[++r] = { | |
| criteria: t(e, n, i), | |
| index: r, | |
| value: e | |
| } | |
| }), | |
| ei(s, jt) | |
| } | |
| function ko() { | |
| var e = arguments | |
| , t = e[0] | |
| , n = e[3] | |
| , r = 0 | |
| , i = e.length - 1; | |
| if (t == null ) | |
| return []; | |
| var s = O(i); | |
| while (r < i) | |
| s[r] = e[++r]; | |
| return n && Gi(e[1], e[2], n) && (s = e[1]), | |
| ti(t, Dr(s), []) | |
| } | |
| function Lo(e, t, n, r) { | |
| return e == null ? [] : (r && Gi(t, n, r) && (n = null ), | |
| ru(t) || (t = t == null ? [] : [t]), | |
| ru(n) || (n = n == null ? [] : [n]), | |
| ti(e, t, n)) | |
| } | |
| function Ao(e, t) { | |
| return so(e, Wr(t)) | |
| } | |
| function Mo(e, t) { | |
| if (typeof t != "function") { | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| var n = e; | |
| e = t, | |
| t = n | |
| } | |
| return e = Tn(e = +e) ? e : 0, | |
| function() { | |
| if (--e < 1) | |
| return t.apply(this, arguments) | |
| } | |
| } | |
| function _o(e, t, n) { | |
| return n && Gi(e, t, n) && (t = null ), | |
| t = e && t == null ? e.length : Cn(+t || 0, 0), | |
| ji(e, f, null , null , null , null , t) | |
| } | |
| function Do(e, t) { | |
| var n; | |
| if (typeof t != "function") { | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| var r = e; | |
| e = t, | |
| t = r | |
| } | |
| return function() { | |
| return --e > 0 ? n = t.apply(this, arguments) : t = null , | |
| n | |
| } | |
| } | |
| function Io(t, n, r) { | |
| function v() { | |
| f && cn(f), | |
| s && cn(s), | |
| s = f = l = e | |
| } | |
| function m() { | |
| var r = n - (Oo() - u); | |
| if (r <= 0 || r > n) { | |
| s && cn(s); | |
| var h = l; | |
| s = f = l = e, | |
| h && (c = Oo(), | |
| o = t.apply(a, i), | |
| !f && !s && (i = a = null )) | |
| } else | |
| f = gn(m, r) | |
| } | |
| function g() { | |
| f && cn(f), | |
| s = f = l = e; | |
| if (p || h !== n) | |
| c = Oo(), | |
| o = t.apply(a, i), | |
| !f && !s && (i = a = null ) | |
| } | |
| function b() { | |
| i = arguments, | |
| u = Oo(), | |
| a = this, | |
| l = p && (f || !d); | |
| if (h === !1) | |
| var e = d && !f; | |
| else { | |
| !s && !d && (c = u); | |
| var r = h - (u - c) | |
| , v = r <= 0 || r > h; | |
| v ? (s && (s = cn(s)), | |
| c = u, | |
| o = t.apply(a, i)) : s || (s = gn(g, r)) | |
| } | |
| return v && f ? f = cn(f) : !f && n !== h && (f = gn(m, n)), | |
| e && (v = !0, | |
| o = t.apply(a, i)), | |
| v && !f && !s && (i = a = null ), | |
| o | |
| } | |
| var i, s, o, u, a, f, l, c = 0, h = !1, p = !0; | |
| if (typeof t != "function") | |
| throw new Tt(y); | |
| n = n < 0 ? 0 : +n || 0; | |
| if (r === !0) { | |
| var d = !0; | |
| p = !1 | |
| } else | |
| hu(r) && (d = r.leading, | |
| h = "maxWait" in r && Cn(+r.maxWait || 0, n), | |
| p = "trailing" in r ? r.trailing : p); | |
| return b.cancel = v, | |
| b | |
| } | |
| function Wo(e, t) { | |
| if (typeof e != "function" || t && typeof t != "function") | |
| throw new Tt(y); | |
| var n = function() { | |
| var r = arguments | |
| , i = n.cache | |
| , s = t ? t.apply(this, r) : r[0]; | |
| if (i.has(s)) | |
| return i.get(s); | |
| var o = e.apply(this, r); | |
| return i.set(s, o), | |
| o | |
| } | |
| ; | |
| return n.cache = new Wo.Cache, | |
| n | |
| } | |
| function Xo(e) { | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| return function() { | |
| return !e.apply(this, arguments) | |
| } | |
| } | |
| function Vo(e) { | |
| return Do(e, 2) | |
| } | |
| function Qo(e, t) { | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| return t = Cn(typeof t == "undefined" ? e.length - 1 : +t || 0, 0), | |
| function() { | |
| var n = arguments | |
| , r = -1 | |
| , i = Cn(n.length - t, 0) | |
| , s = O(i); | |
| while (++r < i) | |
| s[r] = n[t + r]; | |
| switch (t) { | |
| case 0: | |
| return e.call(this, s); | |
| case 1: | |
| return e.call(this, n[0], s); | |
| case 2: | |
| return e.call(this, n[0], n[1], s) | |
| } | |
| var o = O(t + 1); | |
| r = -1; | |
| while (++r < t) | |
| o[r] = n[r]; | |
| return o[t] = s, | |
| e.apply(this, o) | |
| } | |
| } | |
| function Go(e) { | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| return function(t) { | |
| return e.apply(this, t) | |
| } | |
| } | |
| function Yo(e, t, n) { | |
| var r = !0 | |
| , i = !0; | |
| if (typeof e != "function") | |
| throw new Tt(y); | |
| return n === !1 ? r = !1 : hu(n) && (r = "leading" in n ? !!n.leading : r, | |
| i = "trailing" in n ? !!n.trailing : i), | |
| mt.leading = r, | |
| mt.maxWait = +t, | |
| mt.trailing = i, | |
| Io(e, t, mt) | |
| } | |
| function Zo(e, t) { | |
| return t = t == null ? Ea : t, | |
| ji(t, u, null , [e], []) | |
| } | |
| function eu(e, t, n, r) { | |
| return t && typeof t != "boolean" && Gi(e, t, n) ? t = !1 : typeof t == "function" && (r = n, | |
| n = t, | |
| t = !1), | |
| n = typeof n == "function" && fi(n, r, 1), | |
| xr(e, t, n) | |
| } | |
| function tu(e, t, n) { | |
| return t = typeof t == "function" && fi(t, n, 1), | |
| xr(e, !0, t) | |
| } | |
| function nu(t) { | |
| var n = Wt(t) ? t.length : e; | |
| return Zi(n) && sn.call(t) == w | |
| } | |
| function iu(e) { | |
| return e === !0 || e === !1 || Wt(e) && sn.call(e) == S | |
| } | |
| function su(e) { | |
| return Wt(e) && sn.call(e) == x | |
| } | |
| function ou(e) { | |
| return !!e && e.nodeType === 1 && Wt(e) && (zn.support.nodeTag ? sn.call(e).indexOf("Element") > -1 : zt(e)) | |
| } | |
| function uu(e) { | |
| if (e == null ) | |
| return !0; | |
| var t = e.length; | |
| return Zi(t) && (ru(e) || wu(e) || nu(e) || Wt(e) && cu(e.splice)) ? !t : !ju(e).length | |
| } | |
| function au(t, n, r, i) { | |
| r = typeof r == "function" && fi(r, i, 3); | |
| if (!r && es(t) && es(n)) | |
| return t === n; | |
| var s = r ? r(t, n) : e; | |
| return typeof s == "undefined" ? qr(t, n, r) : !!s | |
| } | |
| function fu(e) { | |
| return Wt(e) && typeof e.message == "string" && sn.call(e) == T | |
| } | |
| function hu(e) { | |
| var t = typeof e; | |
| return t == "function" || !!e && t == "object" | |
| } | |
| function pu(e, t, n, r) { | |
| var i = ju(t) | |
| , s = i.length; | |
| if (!s) | |
| return !0; | |
| if (e == null ) | |
| return !1; | |
| n = typeof n == "function" && fi(n, r, 3); | |
| if (!n && s == 1) { | |
| var o = i[0] | |
| , u = t[o]; | |
| if (es(u)) | |
| return u === e[o] && (typeof u != "undefined" || o in fs(e)) | |
| } | |
| var a = O(s) | |
| , f = O(s); | |
| while (s--) | |
| u = a[s] = t[i[s]], | |
| f[s] = es(u); | |
| return Ur(fs(e), i, a, f, n) | |
| } | |
| function du(e) { | |
| return gu(e) && e != +e | |
| } | |
| function vu(e) { | |
| return e == null ? !1 : sn.call(e) == N ? un.test(en.call(e)) : Wt(e) && (zt(e) ? un : rt).test(e) | |
| } | |
| function mu(e) { | |
| return e === null | |
| } | |
| function gu(e) { | |
| return typeof e == "number" || Wt(e) && sn.call(e) == k | |
| } | |
| function bu(e) { | |
| return hu(e) && sn.call(e) == A | |
| } | |
| function wu(e) { | |
| return typeof e == "string" || Wt(e) && sn.call(e) == M | |
| } | |
| function Eu(e) { | |
| return Wt(e) && Zi(e.length) && !!dt[sn.call(e)] | |
| } | |
| function Su(e) { | |
| return typeof e == "undefined" | |
| } | |
| function xu(e) { | |
| var t = e ? e.length : 0; | |
| return Zi(t) ? t ? zn.support.unindexedChars && wu(e) ? e.split("") : sr(e) : [] : Vu(e) | |
| } | |
| function Tu(e) { | |
| return Er(e, Fu(e)) | |
| } | |
| function Cu(e, t, n) { | |
| var r = Tr(e); | |
| return n && Gi(e, t, n) && (t = null ), | |
| t ? Er(t, r, ju(t)) : r | |
| } | |
| function Pu(e) { | |
| return Ir(e, Fu(e)) | |
| } | |
| function Hu(e, t) { | |
| return e ? nn.call(e, t) : !1 | |
| } | |
| function Bu(e, t, n) { | |
| n && Gi(e, t, n) && (t = null ); | |
| var r = -1 | |
| , i = ju(e) | |
| , s = i.length | |
| , o = {}; | |
| while (++r < s) { | |
| var u = i[r] | |
| , a = e[u]; | |
| t ? nn.call(o, a) ? o[a].push(u) : o[a] = [u] : o[a] = u | |
| } | |
| return o | |
| } | |
| function Fu(e) { | |
| if (e == null ) | |
| return []; | |
| hu(e) || (e = Et(e)); | |
| var t = e.length | |
| , n = zn.support; | |
| t = t && Zi(t) && (ru(e) || n.nonEnumStrings && wu(e) || n.nonEnumArgs && nu(e)) && t || 0; | |
| var r = e.constructor | |
| , i = -1 | |
| , s = cu(r) && r.prototype || kt | |
| , o = s === e | |
| , u = O(t) | |
| , a = t > 0 | |
| , f = n.enumErrorProps && (e === Ct || e instanceof gt) | |
| , l = n.enumPrototypes && cu(e); | |
| while (++i < t) | |
| u[i] = i + ""; | |
| for (var c in e) | |
| (!l || c != "prototype") && (!f || c != "message" && c != "name") && (!a || !Qi(c, t)) && (c != "constructor" || !o && !!nn.call(e, c)) && u.push(c); | |
| if (n.nonEnumShadows && e !== kt) { | |
| var h = e === Xt ? M : e === Ct ? T : sn.call(e) | |
| , p = Un[h] || Un[L]; | |
| h == L && (s = kt), | |
| t = ht.length; | |
| while (t--) { | |
| c = ht[t]; | |
| var d = p[c]; | |
| (!o || !d) && (d ? nn.call(e, c) : e[c] !== s[c]) && u.push(c) | |
| } | |
| } | |
| return u | |
| } | |
| function Iu(e, t, n) { | |
| var r = {}; | |
| return t = Ui(t, n, 3), | |
| jr(e, function(e, n, i) { | |
| r[n] = t(e, n, i) | |
| }), | |
| r | |
| } | |
| function Uu(e) { | |
| var t = -1 | |
| , n = ju(e) | |
| , r = n.length | |
| , i = O(r); | |
| while (++t < r) { | |
| var s = n[t]; | |
| i[t] = [s, e[s]] | |
| } | |
| return i | |
| } | |
| function Wu(t, n, r) { | |
| var i = t == null ? e : t[n]; | |
| return typeof i == "undefined" && (i = r), | |
| cu(i) ? i.call(t) : i | |
| } | |
| function Xu(e, t, n, r) { | |
| var i = ru(e) || Eu(e); | |
| t = Ui(t, r, 4); | |
| if (n == null ) | |
| if (i || hu(e)) { | |
| var s = e.constructor; | |
| i ? n = ru(e) ? new s : [] : n = Tr(cu(s) && s.prototype) | |
| } else | |
| n = {}; | |
| return (i ? or : jr)(e, function(e, r, i) { | |
| return t(n, e, r, i) | |
| }), | |
| n | |
| } | |
| function Vu(e) { | |
| return ii(e, ju(e)) | |
| } | |
| function $u(e) { | |
| return ii(e, Fu(e)) | |
| } | |
| function Ju(e, t, n) { | |
| return t = +t || 0, | |
| typeof n == "undefined" ? (n = t, | |
| t = 0) : n = +n || 0, | |
| e >= t && e < n | |
| } | |
| function Ku(e, t, n) { | |
| n && Gi(e, t, n) && (t = n = null ); | |
| var r = e == null | |
| , i = t == null ; | |
| n == null && (i && typeof e == "boolean" ? (n = e, | |
| e = 1) : typeof t == "boolean" && (n = t, | |
| i = !0)), | |
| r && i && (t = 1, | |
| i = !1), | |
| e = +e || 0, | |
| i ? (t = e, | |
| e = 0) : t = +t || 0; | |
| if (n || e % 1 || t % 1) { | |
| var s = Mn(); | |
| return kn(e + s * (t - e + parseFloat("1e-" + ((s + "").length - 1))), t) | |
| } | |
| return Kr(e, t) | |
| } | |
| function Gu(e) { | |
| return e = Dt(e), | |
| e && e.charAt(0).toUpperCase() + e.slice(1) | |
| } | |
| function Yu(e) { | |
| return e = Dt(e), | |
| e && e.replace(it, It).replace(Z, "") | |
| } | |
| function Zu(e, t, n) { | |
| e = Dt(e), | |
| t += ""; | |
| var r = e.length; | |
| return n = typeof n == "undefined" ? r : kn(n < 0 ? 0 : +n || 0, r), | |
| n -= t.length, | |
| n >= 0 && e.indexOf(t, n) == n | |
| } | |
| function ea(e) { | |
| return e = Dt(e), | |
| e && K.test(e) ? e.replace($, qt) : e | |
| } | |
| function ta(e) { | |
| return e = Dt(e), | |
| e && ut.test(e) ? e.replace(ot, "\\$&") : e | |
| } | |
| function ra(e, t, n) { | |
| e = Dt(e), | |
| t = +t; | |
| var r = e.length; | |
| if (r >= t || !Tn(t)) | |
| return e; | |
| var i = (t - r) / 2 | |
| , s = hn(i) | |
| , o = ln(i); | |
| return n = Pi("", o, n), | |
| n.slice(0, s) + e + n | |
| } | |
| function oa(e, t, n) { | |
| return n && Gi(e, t, n) && (t = 0), | |
| On(e, t) | |
| } | |
| function ua(e, t) { | |
| var n = ""; | |
| e = Dt(e), | |
| t = +t; | |
| if (t < 1 || !e || !Tn(t)) | |
| return n; | |
| do | |
| t % 2 && (n += e), | |
| t = hn(t / 2), | |
| e += e; | |
| while (t);return n | |
| } | |
| function la(e, t, n) { | |
| return e = Dt(e), | |
| n = n == null ? 0 : kn(n < 0 ? 0 : +n || 0, e.length), | |
| e.lastIndexOf(t, n) == n | |
| } | |
| function ca(t, n, r) { | |
| var i = zn.templateSettings; | |
| r && Gi(t, n, r) && (n = r = null ), | |
| t = Dt(t), | |
| n = br(br({}, r || n), i, yr); | |
| var s = br(br({}, n.imports), i.imports, yr), o = ju(s), u = ii(s, o), a, f, l = 0, c = n.interpolate || st, h = "__p += '", p = St((n.escape || st).source + "|" + c.source + "|" + (c === Y ? et : st).source + "|" + (n.evaluate || st).source + "|$", "g"), d = "//# sourceURL=" + ("sourceURL" in n ? n.sourceURL : "lodash.templateSources[" + ++pt + "]") + "\n"; | |
| t.replace(p, function(e, n, r, i, s, o) { | |
| return r || (r = i), | |
| h += t.slice(l, o).replace(at, Rt), | |
| n && (a = !0, | |
| h += "' +\n__e(" + n + ") +\n'"), | |
| s && (f = !0, | |
| h += "';\n" + s + ";\n__p += '"), | |
| r && (h += "' +\n((__t = (" + r + ")) == null ? '' : __t) +\n'"), | |
| l = o + e.length, | |
| e | |
| }), | |
| h += "';\n"; | |
| var v = n.variable; | |
| v || (h = "with (obj) {\n" + h + "\n}\n"), | |
| h = (f ? h.replace(z, "") : h).replace(W, "$1").replace(X, "$1;"), | |
| h = "function(" + (v || "obj") + ") {\n" + (v ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (a ? ", __e = _.escape" : "") + (f ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + h + "return __p\n}"; | |
| var m = ya(function() { | |
| return yt(o, d + "return " + h).apply(e, u) | |
| }); | |
| m.source = h; | |
| if (fu(m)) | |
| throw m; | |
| return m | |
| } | |
| function ha(e, t, n) { | |
| var r = e; | |
| return e = Dt(e), | |
| e ? (n ? Gi(r, t, n) : t == null ) ? e.slice(Jt(e), Kt(e) + 1) : (t += "", | |
| e.slice(Ht(e, t), Bt(e, t) + 1)) : e | |
| } | |
| function pa(e, t, n) { | |
| var r = e; | |
| return e = Dt(e), | |
| e ? (n ? Gi(r, t, n) : t == null ) ? e.slice(Jt(e)) : e.slice(Ht(e, t + "")) : e | |
| } | |
| function da(e, t, n) { | |
| var r = e; | |
| return e = Dt(e), | |
| e ? (n ? Gi(r, t, n) : t == null ) ? e.slice(0, Kt(e) + 1) : e.slice(0, Bt(e, t + "") + 1) : e | |
| } | |
| function va(e, t, n) { | |
| n && Gi(e, t, n) && (t = null ); | |
| var r = c | |
| , i = h; | |
| if (t != null ) | |
| if (hu(t)) { | |
| var s = "separator" in t ? t.separator : s; | |
| r = "length" in t ? +t.length || 0 : r, | |
| i = "omission" in t ? Dt(t.omission) : i | |
| } else | |
| r = +t || 0; | |
| e = Dt(e); | |
| if (r >= e.length) | |
| return e; | |
| var o = r - i.length; | |
| if (o < 1) | |
| return i; | |
| var u = e.slice(0, o); | |
| if (s == null ) | |
| return u + i; | |
| if (bu(s)) { | |
| if (e.slice(o).search(s)) { | |
| var a, f, l = e.slice(0, o); | |
| s.global || (s = St(s.source, (tt.exec(s) || "") + "g")), | |
| s.lastIndex = 0; | |
| while (a = s.exec(l)) | |
| f = a.index; | |
| u = u.slice(0, f == null ? o : f) | |
| } | |
| } else if (e.indexOf(s, o) != o) { | |
| var p = u.lastIndexOf(s); | |
| p > -1 && (u = u.slice(0, p)) | |
| } | |
| return u + i | |
| } | |
| function ma(e) { | |
| return e = Dt(e), | |
| e && J.test(e) ? e.replace(V, Qt) : e | |
| } | |
| function ga(e, t, n) { | |
| return n && Gi(e, t, n) && (t = null ), | |
| e = Dt(e), | |
| e.match(t || ft) || [] | |
| } | |
| function ba(e, t, n) { | |
| return n && Gi(e, t, n) && (t = null ), | |
| Wt(e) ? Sa(e) : Sr(e, t) | |
| } | |
| function wa(e) { | |
| return function() { | |
| return e | |
| } | |
| } | |
| function Ea(e) { | |
| return e | |
| } | |
| function Sa(e) { | |
| return Wr(xr(e, !0)) | |
| } | |
| function xa(e, t) { | |
| return Xr(e + "", xr(t, !0)) | |
| } | |
| function Ta(e, t, n) { | |
| if (n == null ) { | |
| var r = hu(t) | |
| , i = r && ju(t) | |
| , s = i && i.length && Ir(t, i); | |
| if (s ? !s.length : !r) | |
| s = !1, | |
| n = t, | |
| t = e, | |
| e = this | |
| } | |
| s || (s = Ir(t, ju(t))); | |
| var o = !0 | |
| , u = -1 | |
| , a = cu(e) | |
| , f = s.length; | |
| n === !1 ? o = !1 : hu(n) && "chain" in n && (o = n.chain); | |
| while (++u < f) { | |
| var l = s[u] | |
| , c = t[l]; | |
| e[l] = c, | |
| a && (e.prototype[l] = function(t) { | |
| return function() { | |
| var n = this.__chain__; | |
| if (o || n) { | |
| var r = e(this.__wrapped__) | |
| , i = r.__actions__ = sr(this.__actions__); | |
| return i.push({ | |
| func: t, | |
| args: arguments, | |
| thisArg: e | |
| }), | |
| r.__chain__ = n, | |
| r | |
| } | |
| var s = [this.value()]; | |
| return dn.apply(s, arguments), | |
| t.apply(e, s) | |
| } | |
| }(c)) | |
| } | |
| return e | |
| } | |
| function Na() { | |
| return C._ = on, | |
| this | |
| } | |
| function Ca() {} | |
| function ka(e) { | |
| return Jr(e + "") | |
| } | |
| function La(t) { | |
| return function(n) { | |
| return t == null ? e : t[n] | |
| } | |
| } | |
| function Aa(e, t, n) { | |
| n && Gi(e, t, n) && (t = n = null ), | |
| e = +e || 0, | |
| n = n == null ? 1 : +n || 0, | |
| t == null ? (t = e, | |
| e = 0) : t = +t || 0; | |
| var r = -1 | |
| , i = Cn(ln((t - e) / (n || 1)), 0) | |
| , s = O(i); | |
| while (++r < i) | |
| s[r] = e, | |
| e += n; | |
| return s | |
| } | |
| function Oa(e, t, n) { | |
| e = +e; | |
| if (e < 1 || !Tn(e)) | |
| return []; | |
| var r = -1 | |
| , i = O(kn(e, Pn)); | |
| t = fi(t, n, 1); | |
| while (++r < e) | |
| r < Pn ? i[r] = t(r) : t(r); | |
| return i | |
| } | |
| function Ma(e) { | |
| var t = ++rn; | |
| return Dt(e) + t | |
| } | |
| function _a(e, t) { | |
| return e + t | |
| } | |
| function Ha(e, t, n) { | |
| n && Gi(e, t, n) && (t = null ); | |
| var r = Ui() | |
| , i = t == null ; | |
| if (r !== Sr || !i) | |
| i = !1, | |
| t = r(t, n, 3); | |
| return i ? mr(ru(e) ? e : as(e)) : ni(e, t) | |
| } | |
| C = C ? Yt.defaults(Lt.Object(), C, Yt.pick(Lt, ct)) : Lt; | |
| var O = C.Array | |
| , _ = C.Date | |
| , gt = C.Error | |
| , yt = C.Function | |
| , bt = C.Math | |
| , wt = C.Number | |
| , Et = C.Object | |
| , St = C.RegExp | |
| , xt = C.String | |
| , Tt = C.TypeError | |
| , Nt = O.prototype | |
| , Ct = gt.prototype | |
| , kt = Et.prototype | |
| , Xt = xt.prototype | |
| , Zt = (Zt = C.window) && Zt.document | |
| , en = yt.prototype.toString | |
| , tn = Jr("length") | |
| , nn = kt.hasOwnProperty | |
| , rn = 0 | |
| , sn = kt.toString | |
| , on = C._ | |
| , un = St("^" + ta(sn).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$") | |
| , an = vu(an = C.ArrayBuffer) && an | |
| , fn = vu(fn = an && (new an(0)).slice) && fn | |
| , ln = bt.ceil | |
| , cn = C.clearTimeout | |
| , hn = bt.floor | |
| , pn = vu(pn = Et.getPrototypeOf) && pn | |
| , dn = Nt.push | |
| , vn = kt.propertyIsEnumerable | |
| , mn = vu(mn = C.Set) && mn | |
| , gn = C.setTimeout | |
| , yn = Nt.splice | |
| , bn = vu(bn = C.Uint8Array) && bn | |
| , wn = vu(wn = C.WeakMap) && wn | |
| , En = function() { | |
| try { | |
| var e = vu(e = C.Float64Array) && e | |
| , t = new e(new an(10),0,1) && e | |
| } catch (n) {} | |
| return t | |
| }() | |
| , Sn = vu(Sn = O.isArray) && Sn | |
| , xn = vu(xn = Et.create) && xn | |
| , Tn = C.isFinite | |
| , Nn = vu(Nn = Et.keys) && Nn | |
| , Cn = bt.max | |
| , kn = bt.min | |
| , Ln = vu(Ln = _.now) && Ln | |
| , An = vu(An = wt.isFinite) && An | |
| , On = C.parseInt | |
| , Mn = bt.random | |
| , _n = wt.NEGATIVE_INFINITY | |
| , Dn = wt.POSITIVE_INFINITY | |
| , Pn = bt.pow(2, 32) - 1 | |
| , Hn = Pn - 1 | |
| , Bn = Pn >>> 1 | |
| , jn = En ? En.BYTES_PER_ELEMENT : 0 | |
| , Fn = bt.pow(2, 53) - 1 | |
| , In = wn && new wn | |
| , qn = {} | |
| , Rn = {}; | |
| Rn[P] = C.Float32Array, | |
| Rn[H] = C.Float64Array, | |
| Rn[B] = C.Int8Array, | |
| Rn[j] = C.Int16Array, | |
| Rn[F] = C.Int32Array, | |
| Rn[I] = C.Uint8Array, | |
| Rn[q] = C.Uint8ClampedArray, | |
| Rn[R] = C.Uint16Array, | |
| Rn[U] = C.Uint32Array; | |
| var Un = {}; | |
| Un[E] = Un[x] = Un[k] = { | |
| constructor: !0, | |
| toLocaleString: !0, | |
| toString: !0, | |
| valueOf: !0 | |
| }, | |
| Un[S] = Un[M] = { | |
| constructor: !0, | |
| toString: !0, | |
| valueOf: !0 | |
| }, | |
| Un[T] = Un[N] = Un[A] = { | |
| constructor: !0, | |
| toString: !0 | |
| }, | |
| Un[L] = { | |
| constructor: !0 | |
| }, | |
| or(ht, function(e) { | |
| for (var t in Un) | |
| if (nn.call(Un, t)) { | |
| var n = Un[t]; | |
| n[e] = nn.call(n, e) | |
| } | |
| }); | |
| var Vn = zn.support = {}; | |
| (function(e) { | |
| var t = function() { | |
| this.x = 1 | |
| } | |
| , n = { | |
| 0: 1, | |
| length: 1 | |
| } | |
| , r = []; | |
| t.prototype = { | |
| valueOf: 1, | |
| y: 1 | |
| }; | |
| for (var i in new t) | |
| r.push(i); | |
| Vn.argsTag = sn.call(arguments) == w, | |
| Vn.enumErrorProps = vn.call(Ct, "message") || vn.call(Ct, "name"), | |
| Vn.enumPrototypes = vn.call(t, "prototype"), | |
| Vn.funcDecomp = /\bthis\b/.test(function() { | |
| return this | |
| }), | |
| Vn.funcNames = typeof yt.name == "string", | |
| Vn.nodeTag = sn.call(Zt) != L, | |
| Vn.nonEnumStrings = !vn.call("x", 0), | |
| Vn.nonEnumShadows = !/valueOf/.test(r), | |
| Vn.ownLast = r[0] != "x", | |
| Vn.spliceObjects = (yn.call(n, 0, 1), | |
| !n[0]), | |
| Vn.unindexedChars = "x"[0] + Et("x")[0] != "xx"; | |
| try { | |
| Vn.dom = Zt.createDocumentFragment().nodeType === 11 | |
| } catch (s) { | |
| Vn.dom = !1 | |
| } | |
| try { | |
| Vn.nonEnumArgs = !vn.call(arguments, 1) | |
| } catch (s) { | |
| Vn.nonEnumArgs = !0 | |
| } | |
| })(0, 0), | |
| zn.templateSettings = { | |
| escape: Q, | |
| evaluate: G, | |
| interpolate: Y, | |
| variable: "", | |
| imports: { | |
| _: zn | |
| } | |
| }; | |
| var Tr = function() { | |
| function e() {} | |
| return function(t) { | |
| if (hu(t)) { | |
| e.prototype = t; | |
| var n = new e; | |
| e.prototype = null | |
| } | |
| return n || C.Object() | |
| } | |
| }() | |
| , kr = vi(jr) | |
| , Lr = vi(Fr, !0) | |
| , Pr = mi() | |
| , Hr = mi(!0) | |
| , Gr = In ? function(e, t) { | |
| return In.set(e, t), | |
| e | |
| } | |
| : Ea; | |
| fn || (li = !an || !bn ? wa(null ) : function(e) { | |
| var t = e.byteLength | |
| , n = En ? hn(t / jn) : 0 | |
| , r = n * jn | |
| , i = new an(t); | |
| if (n) { | |
| var s = new En(i,0,n); | |
| s.set(new En(e,0,n)) | |
| } | |
| return t != r && (s = new bn(i,r), | |
| s.set(new bn(e,r))), | |
| i | |
| } | |
| ); | |
| var yi = !xn || !mn ? wa(null ) : function(e) { | |
| return new nr(e) | |
| } | |
| , zi = In ? function(e) { | |
| return In.get(e) | |
| } | |
| : Ca | |
| , Wi = function() { | |
| return Vn.funcNames ? wa.name == "constant" ? Jr("name") : function(e) { | |
| var t = e.name | |
| , n = qn[t] | |
| , r = n ? n.length : 0; | |
| while (r--) { | |
| var i = n[r] | |
| , s = i.func; | |
| if (s == null || s == e) | |
| return i.name | |
| } | |
| return t | |
| } | |
| : wa("") | |
| }() | |
| , ss = function() { | |
| var e = 0 | |
| , t = 0; | |
| return function(n, r) { | |
| var i = Oo() | |
| , s = d - (i - t); | |
| t = i; | |
| if (s > 0) { | |
| if (++e >= p) | |
| return n | |
| } else | |
| e = 0; | |
| return Gr(n, r) | |
| } | |
| }() | |
| , ps = Qo(function(e, t) { | |
| return ru(e) || nu(e) ? Cr(e, Dr(t, !1, !0)) : [] | |
| }) | |
| , bs = Ti() | |
| , ws = Ti(!0) | |
| , Os = Qo(function(e, t) { | |
| e || (e = []), | |
| t = Dr(t); | |
| var n = t.length | |
| , r = wr(e, t); | |
| t.sort(At); | |
| while (n--) { | |
| var i = parseFloat(t[n]); | |
| if (i != s && Qi(i)) { | |
| var s = i; | |
| yn.call(e, i, 1) | |
| } | |
| } | |
| return r | |
| }) | |
| , Ps = Bi() | |
| , Hs = Bi(!0) | |
| , qs = Qo(function(e) { | |
| return ri(Dr(e, !1, !0)) | |
| }) | |
| , zs = Qo(function(e, t) { | |
| return ru(e) || nu(e) ? Cr(e, t) : [] | |
| }) | |
| , Xs = Qo(Us) | |
| , no = Qo(function(e, t) { | |
| var n = e ? e.length : 0; | |
| return Zi(n) && (e = as(e)), | |
| wr(e, Dr(t)) | |
| }) | |
| , ro = pi(function(e, t, n) { | |
| nn.call(e, n) ? ++e[n] : e[n] = 1 | |
| }) | |
| , oo = xi(kr) | |
| , uo = xi(Lr, !0) | |
| , fo = ki(or, kr) | |
| , lo = ki(ur, Lr) | |
| , co = pi(function(e, t, n) { | |
| nn.call(e, n) ? e[n].push(t) : e[n] = [t] | |
| }) | |
| , po = pi(function(e, t, n) { | |
| e[n] = t | |
| }) | |
| , vo = Qo(function(t, n, r) { | |
| var i = -1 | |
| , s = typeof n == "function" | |
| , o = t ? t.length : 0 | |
| , u = Zi(o) ? O(o) : []; | |
| return kr(t, function(t) { | |
| var o = s ? n : t != null && t[n]; | |
| u[++i] = o ? o.apply(t, r) : e | |
| }), | |
| u | |
| }) | |
| , go = pi(function(e, t, n) { | |
| e[n ? 0 : 1].push(t) | |
| }, function() { | |
| return [[], []] | |
| }) | |
| , bo = _i(pr, kr) | |
| , wo = _i(dr, Lr) | |
| , Oo = Ln || function() { | |
| return (new _).getTime() | |
| } | |
| , Po = Qo(function(e, t, r) { | |
| var i = n; | |
| if (r.length) { | |
| var s = Vt(r, Po.placeholder); | |
| i |= u | |
| } | |
| return ji(e, i, t, r, s) | |
| }) | |
| , Ho = Qo(function(e, t) { | |
| t = t.length ? Dr(t) : Pu(e); | |
| var r = -1 | |
| , i = t.length; | |
| while (++r < i) { | |
| var s = t[r]; | |
| e[s] = ji(e[s], n, e) | |
| } | |
| return e | |
| }) | |
| , Bo = Qo(function(e, t, i) { | |
| var s = n | r; | |
| if (i.length) { | |
| var o = Vt(i, Bo.placeholder); | |
| s |= u | |
| } | |
| return ji(t, s, e, i, o) | |
| }) | |
| , jo = Ei(s) | |
| , Fo = Ei(o) | |
| , qo = Qo(function(e, t) { | |
| return Nr(e, 1, t) | |
| }) | |
| , Ro = Qo(function(e, t, n) { | |
| return Nr(e, t, n) | |
| }) | |
| , Uo = Ci() | |
| , zo = Ci(!0) | |
| , $o = Mi(u) | |
| , Jo = Mi(a) | |
| , Ko = Qo(function(e, t) { | |
| return ji(e, l, null , null , null , Dr(t)) | |
| }); | |
| Vn.argsTag || (nu = function(t) { | |
| var n = Wt(t) ? t.length : e; | |
| return Zi(n) && nn.call(t, "callee") && !vn.call(t, "callee") | |
| } | |
| ); | |
| var ru = Sn || function(e) { | |
| return Wt(e) && Zi(e.length) && sn.call(e) == E | |
| } | |
| ; | |
| Vn.dom || (ou = function(e) { | |
| return !!e && e.nodeType === 1 && Wt(e) && !yu(e) | |
| } | |
| ); | |
| var lu = An || function(e) { | |
| return typeof e == "number" && Tn(e) | |
| } | |
| , cu = _t(/x/) || bn && !_t(bn) ? function(e) { | |
| return sn.call(e) == N | |
| } | |
| : _t | |
| , yu = pn ? function(e) { | |
| if (!e || sn.call(e) != L || !zn.support.argsTag && nu(e)) | |
| return !1; | |
| var t = e.valueOf | |
| , n = vu(t) && (n = pn(t)) && pn(n); | |
| return n ? e == n || pn(e) == n : os(e) | |
| } | |
| : os | |
| , Nu = di(br) | |
| , ku = Qo(function(t) { | |
| var n = t[0]; | |
| return n == null ? n : (t.push(gr), | |
| Nu.apply(e, t)) | |
| }) | |
| , Lu = Ni(jr) | |
| , Au = Ni(Fr) | |
| , Ou = Li(Pr) | |
| , Mu = Li(Hr) | |
| , _u = Ai(jr) | |
| , Du = Ai(Fr) | |
| , ju = Nn ? function(e) { | |
| if (e) | |
| var t = e.constructor | |
| , n = e.length; | |
| return typeof t == "function" && t.prototype === e || (typeof e == "function" ? zn.support.enumPrototypes : n && Zi(n)) ? us(e) : hu(e) ? Nn(e) : [] | |
| } | |
| : us | |
| , qu = di(Vr) | |
| , Ru = Qo(function(e, t) { | |
| if (e == null ) | |
| return {}; | |
| if (typeof t[0] != "function") { | |
| var t = lr(Dr(t), xt); | |
| return ns(e, Cr(Fu(e), t)) | |
| } | |
| var n = fi(t[0], t[1], 3); | |
| return rs(e, function(e, t, r) { | |
| return !n(e, t, r) | |
| }) | |
| }) | |
| , zu = Qo(function(e, t) { | |
| return e == null ? {} : typeof t[0] == "function" ? rs(e, fi(t[0], t[1], 3)) : ns(e, Dr(t)) | |
| }) | |
| , Qu = bi(function(e, t, n) { | |
| return t = t.toLowerCase(), | |
| e + (n ? t.charAt(0).toUpperCase() + t.slice(1) : t) | |
| }) | |
| , na = bi(function(e, t, n) { | |
| return e + (n ? "-" : "") + t.toLowerCase() | |
| }) | |
| , ia = Oi() | |
| , sa = Oi(!0); | |
| On(lt + "08") != 8 && (oa = function(e, t, n) { | |
| return (n ? Gi(e, t, n) : t == null ) ? t = 0 : t && (t = +t), | |
| e = ha(e), | |
| On(e, t || (nt.test(e) ? 16 : 10)) | |
| } | |
| ); | |
| var aa = bi(function(e, t, n) { | |
| return e + (n ? "_" : "") + t.toLowerCase() | |
| }) | |
| , fa = bi(function(e, t, n) { | |
| return e + (n ? " " : "") + (t.charAt(0).toUpperCase() + t.slice(1)) | |
| }) | |
| , ya = Qo(function(t, n) { | |
| try { | |
| return t.apply(e, n) | |
| } catch (r) { | |
| return fu(r) ? r : new gt(r) | |
| } | |
| }) | |
| , Da = Si(cr) | |
| , Pa = Si(hr, !0); | |
| return zn.prototype = Wn.prototype, | |
| Xn.prototype = Tr(Wn.prototype), | |
| Xn.prototype.constructor = Xn, | |
| $n.prototype = Tr(Wn.prototype), | |
| $n.prototype.constructor = $n, | |
| Gn.prototype["delete"] = Yn, | |
| Gn.prototype.get = Zn, | |
| Gn.prototype.has = er, | |
| Gn.prototype.set = tr, | |
| nr.prototype.push = ir, | |
| Wo.Cache = Gn, | |
| zn.after = Mo, | |
| zn.ary = _o, | |
| zn.assign = Nu, | |
| zn.at = no, | |
| zn.before = Do, | |
| zn.bind = Po, | |
| zn.bindAll = Ho, | |
| zn.bindKey = Bo, | |
| zn.callback = ba, | |
| zn.chain = $s, | |
| zn.chunk = cs, | |
| zn.compact = hs, | |
| zn.constant = wa, | |
| zn.countBy = ro, | |
| zn.create = Cu, | |
| zn.curry = jo, | |
| zn.curryRight = Fo, | |
| zn.debounce = Io, | |
| zn.defaults = ku, | |
| zn.defer = qo, | |
| zn.delay = Ro, | |
| zn.difference = ps, | |
| zn.drop = ds, | |
| zn.dropRight = vs, | |
| zn.dropRightWhile = ms, | |
| zn.dropWhile = gs, | |
| zn.fill = ys, | |
| zn.filter = so, | |
| zn.flatten = Ss, | |
| zn.flattenDeep = xs, | |
| zn.flow = Uo, | |
| zn.flowRight = zo, | |
| zn.forEach = fo, | |
| zn.forEachRight = lo, | |
| zn.forIn = Ou, | |
| zn.forInRight = Mu, | |
| zn.forOwn = _u, | |
| zn.forOwnRight = Du, | |
| zn.functions = Pu, | |
| zn.groupBy = co, | |
| zn.indexBy = po, | |
| zn.initial = Ns, | |
| zn.intersection = Cs, | |
| zn.invert = Bu, | |
| zn.invoke = vo, | |
| zn.keys = ju, | |
| zn.keysIn = Fu, | |
| zn.map = mo, | |
| zn.mapValues = Iu, | |
| zn.matches = Sa, | |
| zn.matchesProperty = xa, | |
| zn.memoize = Wo, | |
| zn.merge = qu, | |
| zn.mixin = Ta, | |
| zn.negate = Xo, | |
| zn.omit = Ru, | |
| zn.once = Vo, | |
| zn.pairs = Uu, | |
| zn.partial = $o, | |
| zn.partialRight = Jo, | |
| zn.partition = go, | |
| zn.pick = zu, | |
| zn.pluck = yo, | |
| zn.property = ka, | |
| zn.propertyOf = La, | |
| zn.pull = As, | |
| zn.pullAt = Os, | |
| zn.range = Aa, | |
| zn.rearg = Ko, | |
| zn.reject = Eo, | |
| zn.remove = Ms, | |
| zn.rest = _s, | |
| zn.restParam = Qo, | |
| zn.shuffle = xo, | |
| zn.slice = Ds, | |
| zn.sortBy = Co, | |
| zn.sortByAll = ko, | |
| zn.sortByOrder = Lo, | |
| zn.spread = Go, | |
| zn.take = Bs, | |
| zn.takeRight = js, | |
| zn.takeRightWhile = Fs, | |
| zn.takeWhile = Is, | |
| zn.tap = Js, | |
| zn.throttle = Yo, | |
| zn.thru = Ks, | |
| zn.times = Oa, | |
| zn.toArray = xu, | |
| zn.toPlainObject = Tu, | |
| zn.transform = Xu, | |
| zn.union = qs, | |
| zn.uniq = Rs, | |
| zn.unzip = Us, | |
| zn.values = Vu, | |
| zn.valuesIn = $u, | |
| zn.where = Ao, | |
| zn.without = zs, | |
| zn.wrap = Zo, | |
| zn.xor = Ws, | |
| zn.zip = Xs, | |
| zn.zipObject = Vs, | |
| zn.backflow = zo, | |
| zn.collect = mo, | |
| zn.compose = zo, | |
| zn.each = fo, | |
| zn.eachRight = lo, | |
| zn.extend = Nu, | |
| zn.iteratee = ba, | |
| zn.methods = Pu, | |
| zn.object = Vs, | |
| zn.select = so, | |
| zn.tail = _s, | |
| zn.unique = Rs, | |
| Ta(zn, zn), | |
| zn.add = _a, | |
| zn.attempt = ya, | |
| zn.camelCase = Qu, | |
| zn.capitalize = Gu, | |
| zn.clone = eu, | |
| zn.cloneDeep = tu, | |
| zn.deburr = Yu, | |
| zn.endsWith = Zu, | |
| zn.escape = ea, | |
| zn.escapeRegExp = ta, | |
| zn.every = io, | |
| zn.find = oo, | |
| zn.findIndex = bs, | |
| zn.findKey = Lu, | |
| zn.findLast = uo, | |
| zn.findLastIndex = ws, | |
| zn.findLastKey = Au, | |
| zn.findWhere = ao, | |
| zn.first = Es, | |
| zn.has = Hu, | |
| zn.identity = Ea, | |
| zn.includes = ho, | |
| zn.indexOf = Ts, | |
| zn.inRange = Ju, | |
| zn.isArguments = nu, | |
| zn.isArray = ru, | |
| zn.isBoolean = iu, | |
| zn.isDate = su, | |
| zn.isElement = ou, | |
| zn.isEmpty = uu, | |
| zn.isEqual = au, | |
| zn.isError = fu, | |
| zn.isFinite = lu, | |
| zn.isFunction = cu, | |
| zn.isMatch = pu, | |
| zn.isNaN = du, | |
| zn.isNative = vu, | |
| zn.isNull = mu, | |
| zn.isNumber = gu, | |
| zn.isObject = hu, | |
| zn.isPlainObject = yu, | |
| zn.isRegExp = bu, | |
| zn.isString = wu, | |
| zn.isTypedArray = Eu, | |
| zn.isUndefined = Su, | |
| zn.kebabCase = na, | |
| zn.last = ks, | |
| zn.lastIndexOf = Ls, | |
| zn.max = Da, | |
| zn.min = Pa, | |
| zn.noConflict = Na, | |
| zn.noop = Ca, | |
| zn.now = Oo, | |
| zn.pad = ra, | |
| zn.padLeft = ia, | |
| zn.padRight = sa, | |
| zn.parseInt = oa, | |
| zn.random = Ku, | |
| zn.reduce = bo, | |
| zn.reduceRight = wo, | |
| zn.repeat = ua, | |
| zn.result = Wu, | |
| zn.runInContext = Gt, | |
| zn.size = To, | |
| zn.snakeCase = aa, | |
| zn.some = No, | |
| zn.sortedIndex = Ps, | |
| zn.sortedLastIndex = Hs, | |
| zn.startCase = fa, | |
| zn.startsWith = la, | |
| zn.sum = Ha, | |
| zn.template = ca, | |
| zn.trim = ha, | |
| zn.trimLeft = pa, | |
| zn.trimRight = da, | |
| zn.trunc = va, | |
| zn.unescape = ma, | |
| zn.uniqueId = Ma, | |
| zn.words = ga, | |
| zn.all = io, | |
| zn.any = No, | |
| zn.contains = ho, | |
| zn.detect = oo, | |
| zn.foldl = bo, | |
| zn.foldr = wo, | |
| zn.head = Es, | |
| zn.include = ho, | |
| zn.inject = bo, | |
| Ta(zn, function() { | |
| var e = {}; | |
| return jr(zn, function(t, n) { | |
| zn.prototype[n] || (e[n] = t) | |
| }), | |
| e | |
| }(), !1), | |
| zn.sample = So, | |
| zn.prototype.sample = function(e) { | |
| return !this.__chain__ && e == null ? So(this.value()) : this.thru(function(t) { | |
| return So(t, e) | |
| }) | |
| } | |
| , | |
| zn.VERSION = t, | |
| or(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(e) { | |
| zn[e].placeholder = zn | |
| }), | |
| or(["dropWhile", "filter", "map", "takeWhile"], function(e, t) { | |
| var n = t != g | |
| , r = t == v; | |
| $n.prototype[e] = function(e, i) { | |
| var s = this.__filtered__ | |
| , o = s && r ? new $n(this) : this.clone() | |
| , u = o.__iteratees__ || (o.__iteratees__ = []); | |
| return u.push({ | |
| done: !1, | |
| count: 0, | |
| index: 0, | |
| iteratee: Ui(e, i, 1), | |
| limit: -1, | |
| type: t | |
| }), | |
| o.__filtered__ = s || n, | |
| o | |
| } | |
| }), | |
| or(["drop", "take"], function(e, t) { | |
| var n = e + "While"; | |
| $n.prototype[e] = function(n) { | |
| var r = this.__filtered__ | |
| , i = r && !t ? this.dropWhile() : this.clone(); | |
| n = n == null ? 1 : Cn(hn(n) || 0, 0); | |
| if (r) | |
| t ? i.__takeCount__ = kn(i.__takeCount__, n) : ks(i.__iteratees__).limit = n; | |
| else { | |
| var s = i.__views__ || (i.__views__ = []); | |
| s.push({ | |
| size: n, | |
| type: e + (i.__dir__ < 0 ? "Right" : "") | |
| }) | |
| } | |
| return i | |
| } | |
| , | |
| $n.prototype[e + "Right"] = function(t) { | |
| return this.reverse()[e](t).reverse() | |
| } | |
| , | |
| $n.prototype[e + "RightWhile"] = function(e, t) { | |
| return this.reverse()[n](e, t).reverse() | |
| } | |
| }), | |
| or(["first", "last"], function(e, t) { | |
| var n = "take" + (t ? "Right" : ""); | |
| $n.prototype[e] = function() { | |
| return this[n](1).value()[0] | |
| } | |
| }), | |
| or(["initial", "rest"], function(e, t) { | |
| var n = "drop" + (t ? "" : "Right"); | |
| $n.prototype[e] = function() { | |
| return this[n](1) | |
| } | |
| }), | |
| or(["pluck", "where"], function(e, t) { | |
| var n = t ? "filter" : "map" | |
| , r = t ? Wr : Jr; | |
| $n.prototype[e] = function(e) { | |
| return this[n](r(e)) | |
| } | |
| }), | |
| $n.prototype.compact = function() { | |
| return this.filter(Ea) | |
| } | |
| , | |
| $n.prototype.reject = function(e, t) { | |
| return e = Ui(e, t, 1), | |
| this.filter(function(t) { | |
| return !e(t) | |
| }) | |
| } | |
| , | |
| $n.prototype.slice = function(e, t) { | |
| e = e == null ? 0 : +e || 0; | |
| var n = e < 0 ? this.takeRight(-e) : this.drop(e); | |
| return typeof t != "undefined" && (t = +t || 0, | |
| n = t < 0 ? n.dropRight(-t) : n.take(t - e)), | |
| n | |
| } | |
| , | |
| $n.prototype.toArray = function() { | |
| return this.drop(0) | |
| } | |
| , | |
| jr($n.prototype, function(e, t) { | |
| var n = zn[t]; | |
| if (!n) | |
| return; | |
| var r = /^(?:filter|map|reject)|While$/.test(t) | |
| , i = /^(?:first|last)$/.test(t); | |
| zn.prototype[t] = function() { | |
| var t = arguments | |
| , s = t.length | |
| , o = this.__chain__ | |
| , u = this.__wrapped__ | |
| , a = !!this.__actions__.length | |
| , f = u instanceof $n | |
| , l = t[0] | |
| , c = f || ru(u); | |
| c && r && typeof l == "function" && l.length != 1 && (f = c = !1); | |
| var h = f && !a; | |
| if (i && !o) | |
| return h ? e.call(u) : n.call(zn, this.value()); | |
| var p = function(e) { | |
| var r = [e]; | |
| return dn.apply(r, t), | |
| n.apply(zn, r) | |
| } | |
| ; | |
| if (c) { | |
| var d = h ? u : new $n(this) | |
| , v = e.apply(d, t); | |
| if (!i && (a || v.__actions__)) { | |
| var m = v.__actions__ || (v.__actions__ = []); | |
| m.push({ | |
| func: Ks, | |
| args: [p], | |
| thisArg: zn | |
| }) | |
| } | |
| return new Xn(v,o) | |
| } | |
| return this.thru(p) | |
| } | |
| }), | |
| or(["concat", "join", "pop", "push", "replace", "shift", "sort", "splice", "split", "unshift"], function(e) { | |
| var t = (/^(?:replace|split)$/.test(e) ? Xt : Nt)[e] | |
| , n = /^(?:push|sort|unshift)$/.test(e) ? "tap" : "thru" | |
| , r = !Vn.spliceObjects && /^(?:pop|shift|splice)$/.test(e) | |
| , i = /^(?:join|pop|replace|shift)$/.test(e) | |
| , s = r ? function() { | |
| var e = t.apply(this, arguments); | |
| return this.length === 0 && delete this[0], | |
| e | |
| } | |
| : t; | |
| zn.prototype[e] = function() { | |
| var e = arguments; | |
| return i && !this.__chain__ ? s.apply(this.value(), e) : this[n](function(t) { | |
| return s.apply(t, e) | |
| }) | |
| } | |
| }), | |
| jr($n.prototype, function(e, t) { | |
| var n = zn[t]; | |
| if (n) { | |
| var r = n.name | |
| , i = qn[r] || (qn[r] = []); | |
| i.push({ | |
| name: t, | |
| func: n | |
| }) | |
| } | |
| }), | |
| qn[Di(null , r).name] = [{ | |
| name: "wrapper", | |
| func: null | |
| }], | |
| $n.prototype.clone = Jn, | |
| $n.prototype.reverse = Kn, | |
| $n.prototype.value = Qn, | |
| zn.prototype.chain = Qs, | |
| zn.prototype.commit = Gs, | |
| zn.prototype.plant = Ys, | |
| zn.prototype.reverse = Zs, | |
| zn.prototype.toString = eo, | |
| zn.prototype.run = zn.prototype.toJSON = zn.prototype.valueOf = zn.prototype.value = to, | |
| zn.prototype.collect = zn.prototype.map, | |
| zn.prototype.head = zn.prototype.first, | |
| zn.prototype.select = zn.prototype.filter, | |
| zn.prototype.tail = zn.prototype.rest, | |
| zn | |
| } | |
| var e, t = "3.6.0", n = 1, r = 2, i = 4, s = 8, o = 16, u = 32, a = 64, f = 128, l = 256, c = 30, h = "...", p = 150, d = 16, v = 0, m = 1, g = 2, y = "Expected a function", b = "__lodash_placeholder__", w = "[object Arguments]", E = "[object Array]", S = "[object Boolean]", x = "[object Date]", T = "[object Error]", N = "[object Function]", C = "[object Map]", k = "[object Number]", L = "[object Object]", A = "[object RegExp]", O = "[object Set]", M = "[object String]", _ = "[object WeakMap]", D = "[object ArrayBuffer]", P = "[object Float32Array]", H = "[object Float64Array]", B = "[object Int8Array]", j = "[object Int16Array]", F = "[object Int32Array]", I = "[object Uint8Array]", q = "[object Uint8ClampedArray]", R = "[object Uint16Array]", U = "[object Uint32Array]", z = /\b__p \+= '';/g, W = /\b(__p \+=) '' \+/g, X = /(__e\(.*?\)|\b__t\)) \+\n'';/g, V = /&(?:amp|lt|gt|quot|#39|#96);/g, $ = /[&<>"'`]/g, J = RegExp(V.source), K = RegExp($.source), Q = /<%-([\s\S]+?)%>/g, G = /<%([\s\S]+?)%>/g, Y = /<%=([\s\S]+?)%>/g, Z = /[\u0300-\u036f\ufe20-\ufe23]/g, et = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, tt = /\w*$/, nt = /^0[xX]/, rt = /^\[object .+?Constructor\]$/, it = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g, st = /($^)/, ot = /[.*+?^${}()|[\]\/\\]/g, ut = RegExp(ot.source), at = /['\n\r\u2028\u2029\\]/g, ft = function() { | |
| var e = "[A-Z\\xc0-\\xd6\\xd8-\\xde]" | |
| , t = "[a-z\\xdf-\\xf6\\xf8-\\xff]+"; | |
| return RegExp(e + "+(?=" + e + t + ")|" + e + "?" + t + "|" + e + "+|[0-9]+", "g") | |
| }(), lt = " \fย ๏ปฟ\n\r\u2028\u2029แแ โโโโโโ โโโโโโฏโใ", ct = ["Array", "ArrayBuffer", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Math", "Number", "Object", "RegExp", "Set", "String", "_", "clearTimeout", "document", "isFinite", "parseInt", "setTimeout", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "window"], ht = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"], pt = -1, dt = {}; | |
| dt[P] = dt[H] = dt[B] = dt[j] = dt[F] = dt[I] = dt[q] = dt[R] = dt[U] = !0, | |
| dt[w] = dt[E] = dt[D] = dt[S] = dt[x] = dt[T] = dt[N] = dt[C] = dt[k] = dt[L] = dt[A] = dt[O] = dt[M] = dt[_] = !1; | |
| var vt = {}; | |
| vt[w] = vt[E] = vt[D] = vt[S] = vt[x] = vt[P] = vt[H] = vt[B] = vt[j] = vt[F] = vt[k] = vt[L] = vt[A] = vt[M] = vt[I] = vt[q] = vt[R] = vt[U] = !0, | |
| vt[T] = vt[N] = vt[C] = vt[O] = vt[_] = !1; | |
| var mt = { | |
| leading: !1, | |
| maxWait: 0, | |
| trailing: !1 | |
| } | |
| , gt = { | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร ": "A", | |
| "ร ": "a", | |
| "รก": "a", | |
| "รข": "a", | |
| "รฃ": "a", | |
| "รค": "a", | |
| "รฅ": "a", | |
| "ร": "C", | |
| "รง": "c", | |
| "ร": "D", | |
| "รฐ": "d", | |
| "ร": "E", | |
| "ร": "E", | |
| "ร": "E", | |
| "ร": "E", | |
| "รจ": "e", | |
| "รฉ": "e", | |
| "รช": "e", | |
| "รซ": "e", | |
| "ร": "I", | |
| "ร": "I", | |
| "ร": "I", | |
| "ร": "I", | |
| "รฌ": "i", | |
| "รญ": "i", | |
| "รฎ": "i", | |
| "รฏ": "i", | |
| "ร": "N", | |
| "รฑ": "n", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "รฒ": "o", | |
| "รณ": "o", | |
| "รด": "o", | |
| "รต": "o", | |
| "รถ": "o", | |
| "รธ": "o", | |
| "ร": "U", | |
| "ร": "U", | |
| "ร": "U", | |
| "ร": "U", | |
| "รน": "u", | |
| "รบ": "u", | |
| "รป": "u", | |
| "รผ": "u", | |
| "ร": "Y", | |
| "รฝ": "y", | |
| "รฟ": "y", | |
| "ร": "Ae", | |
| "รฆ": "ae", | |
| "ร": "Th", | |
| "รพ": "th", | |
| "ร": "ss" | |
| } | |
| , yt = { | |
| "&": "&", | |
| "<": "<", | |
| ">": ">", | |
| '"': """, | |
| "'": "'", | |
| "`": "`" | |
| } | |
| , bt = { | |
| "&": "&", | |
| "<": "<", | |
| ">": ">", | |
| """: '"', | |
| "'": "'", | |
| "`": "`" | |
| } | |
| , wt = { | |
| "function": !0, | |
| object: !0 | |
| } | |
| , Et = { | |
| "\\": "\\", | |
| "'": "'", | |
| "\n": "n", | |
| "\r": "r", | |
| "\u2028": "u2028", | |
| "\u2029": "u2029" | |
| } | |
| , St = wt[typeof exports] && exports && !exports.nodeType && exports | |
| , xt = wt[typeof module] && module && !module.nodeType && module | |
| , Tt = St && xt && typeof global == "object" && global | |
| , Nt = wt[typeof self] && self && self.Object && self | |
| , Ct = wt[typeof window] && window && window.Object && window | |
| , kt = xt && xt.exports === St && St | |
| , Lt = Tt || Ct !== (this && this.window) && Ct || Nt || this | |
| , zt = function() { | |
| try { | |
| Object({ | |
| toString: 0 | |
| } + "") | |
| } catch (e) { | |
| return function() { | |
| return !1 | |
| } | |
| } | |
| return function(e) { | |
| return typeof e.toString != "function" && typeof (e + "") == "string" | |
| } | |
| }() | |
| , Yt = Gt(); | |
| typeof define == "function" && typeof define.amd == "object" && define.amd ? (Lt._ = Yt, | |
| define("lodash-compat/index", [], function() { | |
| return Yt | |
| })) : St && xt ? kt ? (xt.exports = Yt)._ = Yt : St._ = Yt : Lt._ = Yt | |
| } | |
| .call(this), | |
| define("lodash-compat", ["lodash-compat/index"], function(e) { | |
| return e | |
| }), | |
| function(e) { | |
| typeof e == "undefined" && (e = {}), | |
| typeof e.performance == "undefined" && (e.performance = {}), | |
| e._perfRefForUserTimingPolyfill = e.performance, | |
| e.performance.userTimingJsNow = !1, | |
| e.performance.userTimingJsNowPrefixed = !1, | |
| e.performance.userTimingJsUserTiming = !1, | |
| e.performance.userTimingJsUserTimingPrefixed = !1, | |
| e.performance.userTimingJsPerformanceTimeline = !1, | |
| e.performance.userTimingJsPerformanceTimelinePrefixed = !1; | |
| var t = [], n = [], r = null , i, s; | |
| if (typeof e.performance.now != "function") { | |
| e.performance.userTimingJsNow = !0, | |
| n = ["webkitNow", "msNow", "mozNow"]; | |
| for (i = 0; i < n.length; i++) | |
| if (typeof e.performance[n[i]] == "function") { | |
| e.performance.now = e.performance[n[i]], | |
| e.performance.userTimingJsNowPrefixed = !0; | |
| break | |
| } | |
| var o = +(new Date); | |
| e.performance.timing && e.performance.timing.navigationStart && (o = e.performance.timing.navigationStart), | |
| typeof e.performance.now != "function" && (Date.now ? e.performance.now = function() { | |
| return Date.now() - o | |
| } | |
| : e.performance.now = function() { | |
| return +(new Date) - o | |
| } | |
| ) | |
| } | |
| var u = function() {} | |
| , a = function() {} | |
| , f = [] | |
| , l = !1 | |
| , c = !1; | |
| if (typeof e.performance.getEntries != "function" || typeof e.performance.mark != "function") { | |
| typeof e.performance.getEntries == "function" && typeof e.performance.mark != "function" && (c = !0), | |
| e.performance.userTimingJsPerformanceTimeline = !0, | |
| t = ["webkit", "moz"], | |
| n = ["getEntries", "getEntriesByName", "getEntriesByType"]; | |
| for (i = 0; i < n.length; i++) | |
| for (s = 0; s < t.length; s++) | |
| r = t[s] + n[i].substr(0, 1).toUpperCase() + n[i].substr(1), | |
| typeof e.performance[r] == "function" && (e.performance[n[i]] = e.performance[r], | |
| e.performance.userTimingJsPerformanceTimelinePrefixed = !0); | |
| u = function(e) { | |
| f.push(e), | |
| e.entryType === "measure" && (l = !0) | |
| } | |
| ; | |
| var h = function() { | |
| if (!l) | |
| return; | |
| f.sort(function(e, t) { | |
| return e.startTime - t.startTime | |
| }), | |
| l = !1 | |
| } | |
| ; | |
| a = function(e, t) { | |
| i = 0; | |
| while (i < f.length) { | |
| if (f[i].entryType !== e) { | |
| i++; | |
| continue | |
| } | |
| if (typeof t != "undefined" && f[i].name !== t) { | |
| i++; | |
| continue | |
| } | |
| f.splice(i, 1) | |
| } | |
| } | |
| ; | |
| if (typeof e.performance.getEntries != "function" || c) { | |
| var p = e.performance.getEntries; | |
| e.performance.getEntries = function() { | |
| h(); | |
| var t = f.slice(0); | |
| return c && p && (Array.prototype.push.apply(t, p.call(e.performance)), | |
| t.sort(function(e, t) { | |
| return e.startTime - t.startTime | |
| })), | |
| t | |
| } | |
| } | |
| if (typeof e.performance.getEntriesByType != "function" || c) { | |
| var d = e.performance.getEntriesByType; | |
| e.performance.getEntriesByType = function(t) { | |
| if (typeof t == "undefined" || t !== "mark" && t !== "measure") | |
| return c && d ? d.call(e.performance, t) : []; | |
| t === "measure" && h(); | |
| var n = []; | |
| for (i = 0; i < f.length; i++) | |
| f[i].entryType === t && n.push(f[i]); | |
| return n | |
| } | |
| } | |
| if (typeof e.performance.getEntriesByName != "function" || c) { | |
| var v = e.performance.getEntriesByName; | |
| e.performance.getEntriesByName = function(t, n) { | |
| if (n && n !== "mark" && n !== "measure") | |
| return c && v ? v.call(e.performance, t, n) : []; | |
| typeof n != "undefined" && n === "measure" && h(); | |
| var r = []; | |
| for (i = 0; i < f.length; i++) { | |
| if (typeof n != "undefined" && f[i].entryType !== n) | |
| continue;f[i].name === t && r.push(f[i]) | |
| } | |
| return c && v && (Array.prototype.push.apply(r, v.call(e.performance, t, n)), | |
| r.sort(function(e, t) { | |
| return e.startTime - t.startTime | |
| })), | |
| r | |
| } | |
| } | |
| } | |
| if (typeof e.performance.mark != "function") { | |
| e.performance.userTimingJsUserTiming = !0, | |
| t = ["webkit", "moz", "ms"], | |
| n = ["mark", "measure", "clearMarks", "clearMeasures"]; | |
| for (i = 0; i < n.length; i++) | |
| for (s = 0; s < t.length; s++) | |
| r = t[s] + n[i].substr(0, 1).toUpperCase() + n[i].substr(1), | |
| typeof e.performance[r] == "function" && (e.performance[n[i]] = e.performance[r], | |
| e.performance.userTimingJsUserTimingPrefixed = !0); | |
| var m = {}; | |
| typeof e.performance.mark != "function" && (e.performance.mark = function(t) { | |
| var n = e.performance.now(); | |
| if (typeof t == "undefined") | |
| throw new SyntaxError("Mark name must be specified"); | |
| if (e.performance.timing && t in e.performance.timing) | |
| throw new SyntaxError("Mark name is not allowed"); | |
| m[t] || (m[t] = []), | |
| m[t].push(n), | |
| u({ | |
| entryType: "mark", | |
| name: t, | |
| startTime: n, | |
| duration: 0 | |
| }) | |
| } | |
| ), | |
| typeof e.performance.clearMarks != "function" && (e.performance.clearMarks = function(e) { | |
| e ? m[e] = [] : m = {}, | |
| a("mark", e) | |
| } | |
| ), | |
| typeof e.performance.measure != "function" && (e.performance.measure = function(t, n, r) { | |
| var i = e.performance.now(); | |
| if (typeof t == "undefined") | |
| throw new SyntaxError("Measure must be specified"); | |
| if (!n) { | |
| u({ | |
| entryType: "measure", | |
| name: t, | |
| startTime: 0, | |
| duration: i | |
| }); | |
| return | |
| } | |
| var s = 0; | |
| if (e.performance.timing && n in e.performance.timing) { | |
| if (n !== "navigationStart" && e.performance.timing[n] === 0) | |
| throw new Error(n + " has a timing of 0"); | |
| s = e.performance.timing[n] - e.performance.timing.navigationStart | |
| } else { | |
| if (!(n in m)) | |
| throw new Error(n + " mark not found"); | |
| s = m[n][m[n].length - 1] | |
| } | |
| var o = i; | |
| if (r) { | |
| o = 0; | |
| if (e.performance.timing && r in e.performance.timing) { | |
| if (r !== "navigationStart" && e.performance.timing[r] === 0) | |
| throw new Error(r + " has a timing of 0"); | |
| o = e.performance.timing[r] - e.performance.timing.navigationStart | |
| } else { | |
| if (!(r in m)) | |
| throw new Error(r + " mark not found"); | |
| o = m[r][m[r].length - 1] | |
| } | |
| } | |
| var a = o - s; | |
| u({ | |
| entryType: "measure", | |
| name: t, | |
| startTime: s, | |
| duration: a | |
| }) | |
| } | |
| ), | |
| typeof e.performance.clearMeasures != "function" && (e.performance.clearMeasures = function(e) { | |
| a("measure", e) | |
| } | |
| ) | |
| } | |
| typeof define != "undefined" && define.amd ? define("usertiming/src/usertiming", [], function() { | |
| return e.performance | |
| }) : typeof module != "undefined" && typeof module.exports != "undefined" && (module.exports = e.performance) | |
| }(typeof window != "undefined" ? window : undefined), | |
| define("usertiming", ["usertiming/src/usertiming"], function(e) { | |
| return e | |
| }), | |
| define("browser/window", [], function() { | |
| return window | |
| }), | |
| define("utils/common/version", ["require", "exports", "module"], function(e, t) { | |
| function n(e) { | |
| function i() { | |
| if (!e) { | |
| t = [n, n], | |
| r = !1; | |
| return | |
| } | |
| var i = o(); | |
| i ? (t = e.split(i), | |
| s()) : (t = [e, n], | |
| r = !1) | |
| } | |
| function s() { | |
| var e = 0; | |
| for (e = 0; e < t.length; ++e) | |
| if (!t[e] || isNaN(t[e])) { | |
| t.push(n), | |
| r = !1; | |
| break | |
| } | |
| } | |
| function o() { | |
| return e.indexOf(".") > -1 ? "." : e.indexOf("_") > -1 ? "_" : null | |
| } | |
| var t, n = "U", r = !0; | |
| i(), | |
| this.getMajor = function() { | |
| return t[0] | |
| } | |
| , | |
| this.getMinor = function() { | |
| return t[1] | |
| } | |
| , | |
| this.getAllComponents = function() { | |
| return t | |
| } | |
| , | |
| this.getOriginalString = function() { | |
| return e | |
| } | |
| , | |
| this.isValid = function() { | |
| return r | |
| } | |
| , | |
| this.compareTo = function(e) { | |
| var n = 0 | |
| , r = 0 | |
| , i = 0 | |
| , s = e.getAllComponents(); | |
| if (!this.isValid() || !e.isValid()) | |
| throw new Error("Invalid version cannot be compared"); | |
| for (n = 0; n < s.length; ++n) { | |
| r = parseInt(t[n], 10), | |
| i = parseInt(s[n], 10); | |
| if (!r || r < i) | |
| return -1; | |
| if (r > i) | |
| return 1 | |
| } | |
| return 0 | |
| } | |
| } | |
| t.parse = function(e) { | |
| return new n(e) | |
| } | |
| }), | |
| define("browser/detect", ["require", "browser/window", "utils/common/version"], function(e) { | |
| function h() { | |
| return t.navigator.userAgent | |
| } | |
| function p(e) { | |
| return h().indexOf(e) > -1 | |
| } | |
| function d() { | |
| return p("Trident") | |
| } | |
| function v() { | |
| return p(r.EDGE) | |
| } | |
| function m() { | |
| return p("OPR/") | |
| } | |
| function g() { | |
| return m() ? r.UNKNOWN : p(r.PHANTOMJS) ? r.PHANTOMJS : v() ? r.EDGE : p(r.ELECTRON) ? r.ELECTRON : p(r.CHROME) ? r.CHROME : p(r.FIREFOX) ? r.FIREFOX : p(r.SAFARI) ? r.SAFARI : p(r.SKYPE_SHELL) ? r.SKYPE_SHELL : d() ? r.MSIE : r.UNKNOWN | |
| } | |
| function y() { | |
| function e() { | |
| var e, t = h(), n = t.match(new RegExp(r.MSIE + " " + l)); | |
| if (n) | |
| return n[1]; | |
| e = t.match(new RegExp("rv:" + l)); | |
| if (e) | |
| return e[1] | |
| } | |
| function t(e) { | |
| var t; | |
| return e === r.SAFARI && (e = "Version"), | |
| t = h().match(new RegExp(e + "/" + l)), | |
| t ? t[1] : a | |
| } | |
| return d() ? e() : t(g()) | |
| } | |
| function b() { | |
| var e = /(android|ipod|windows phone|wpdesktop|windows ce|blackberry\w*|meego|webos|palm|symbian|pda|\w*?mobile\w*?|\w*?phone\w*?)/i | |
| , t = /tablet|ipad/i; | |
| return h().match(e) ? s.MOBILE : h().match(t) ? s.TABLET : s.DESKTOP | |
| } | |
| function w() { | |
| var e = /(windows|win32)/i | |
| , t = / arm;/i | |
| , n = /windows\sphone\s\d+\.\d+/i | |
| , r = /(macintosh|mac os x)/i | |
| , s = /(iPad|iPhone|iPod)(?=.*like Mac OS X)/i | |
| , o = /(linux|joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|cros)/i | |
| , u = /android/i; | |
| return h().match(n) ? i.WINDOWS_PHONE : h().match(t) ? i.WINDOWS_RT : h().match(s) ? i.IOS : h().match(u) ? i.ANDROID : h().match(o) ? i.LINUX : h().match(r) ? i.MACOSX : h().match(e) ? i.WINDOWS : i.UNKNOWN | |
| } | |
| function E() { | |
| function e() { | |
| var e = h().match(new RegExp("Windows NT " + l)); | |
| return e && o[e[1]] ? o[e[1]] : a | |
| } | |
| function t() { | |
| var e = h().match(new RegExp(i.MACOSX + " " + c)); | |
| return e ? n.parse(e[1].replace(/_/g, ".")).getMajor() : a | |
| } | |
| return w() === i.WINDOWS ? e() : w() === i.MACOSX ? t() : a | |
| } | |
| function S() { | |
| return p("WOW64") || p("Win64") | |
| } | |
| function x() { | |
| return { | |
| width: t.screen && t.screen.width || 0, | |
| height: t.screen && t.screen.height || 0, | |
| pixelRatio: t.devicePixelRatio || 0, | |
| colorDepth: t.screen && t.screen.colorDepth || 0, | |
| isTouchEnabled: Object.prototype.hasOwnProperty.call(t, "ontouchstart") || t.navigator.MaxTouchPoints > 0 || t.navigator.msMaxTouchPoints > 0 | |
| } | |
| } | |
| function T() { | |
| return { | |
| deviceType: b(), | |
| osName: w(), | |
| osVersion: E(), | |
| is64bit: S(), | |
| platform: t.navigator.platform | |
| } | |
| } | |
| function N() { | |
| return g() === r.MSIE && C() ? t.external.msIsSiteMode() : "n/a" | |
| } | |
| function C() { | |
| return t.hasOwnProperty("external") && t.external.hasOwnProperty("msIsSiteMode") | |
| } | |
| function k() { | |
| return g() === r.SKYPE_SHELL | |
| } | |
| function L() { | |
| return g() === r.ELECTRON | |
| } | |
| function A() { | |
| return (t.navigator.getUserMedia || t.navigator.mozGetUserMedia || t.navigator.webkitGetUserMedia) && (typeof t.RTCPeerConnection != "undefined" || typeof t.RTCIceGatherer != "undefined" || typeof t.mozRTCPeerConnection != "undefined" || typeof t.webkitRTCPeerConnection != "undefined") | |
| } | |
| function O() { | |
| return A() | |
| } | |
| function M() { | |
| return g() === r.EDGE || g() === r.PHANTOMJS ? !1 : g() === r.CHROME && P() >= f ? !1 : !0 | |
| } | |
| function _() { | |
| var e = g(); | |
| return e === r.FIREFOX || e === r.CHROME | |
| } | |
| function P() { | |
| var e = n.parse(y()).getMajor(); | |
| return isNaN(e) ? e : parseInt(e) | |
| } | |
| function H(e) { | |
| return e in t.document.documentElement.style | |
| } | |
| var t = e("browser/window") | |
| , n = e("utils/common/version") | |
| , r = { | |
| MSIE: "MSIE", | |
| CHROME: "Chrome", | |
| FIREFOX: "Firefox", | |
| SAFARI: "Safari", | |
| EDGE: "Edge", | |
| ELECTRON: "Electron", | |
| SKYPE_SHELL: "SkypeShell", | |
| PHANTOMJS: "PhantomJS", | |
| UNKNOWN: "Unknown" | |
| } | |
| , i = { | |
| WINDOWS: "Windows", | |
| MACOSX: "Mac OS X", | |
| WINDOWS_PHONE: "Windows Phone", | |
| WINDOWS_RT: "Windows RT", | |
| IOS: "iOS", | |
| ANDROID: "Android", | |
| LINUX: "Linux", | |
| UNKNOWN: "Unknown" | |
| } | |
| , s = { | |
| DESKTOP: 1, | |
| MOBILE: 2, | |
| TABLET: 8 | |
| } | |
| , o = { | |
| 5.1: "XP", | |
| "6.0": "Vista", | |
| 6.1: "7", | |
| 6.2: "8", | |
| 6.3: "8.1", | |
| "10.0": "10" | |
| } | |
| , u = { | |
| OBJECT_FIT: "objectFit" | |
| } | |
| , a = "U" | |
| , f = "42" | |
| , l = "([\\d,.]+)" | |
| , c = "([\\d,_,.]+)" | |
| , D = function() { | |
| var e = {}; | |
| if (!t.location.search) | |
| return e; | |
| var n = t.location.search.substring(1).split("&"); | |
| if (!n) | |
| return e; | |
| for (var r = 0; r < n.length; r++) { | |
| var i = n[r].split("="); | |
| if (!i[1]) | |
| continue;e[i[0]] = i[1] || !0 | |
| } | |
| return e | |
| } | |
| ; | |
| return { | |
| getBrowserInfo: function() { | |
| return { | |
| browserName: g(), | |
| browserVersion: y(), | |
| browserMajorVersion: P(), | |
| isPinnedSite: N(), | |
| isIeEngine: d(), | |
| isEdge: v(), | |
| isShellApp: k(), | |
| isElectron: L(), | |
| isInBrowserPluginSupported: M(), | |
| isPluginlessCallingSupported: O(), | |
| isBrowserDefaultToBlockPlugin: _(), | |
| getUrlParams: D, | |
| getUserAgent: h | |
| } | |
| }, | |
| getScreenInfo: x, | |
| getSystemInfo: T, | |
| supportsCssProperty: H, | |
| supportsPinnedSites: C, | |
| BROWSERS: r, | |
| OPERATING_SYSTEMS: i, | |
| DEVICE_TYPES: s, | |
| CSS_PROPERTIES: u | |
| } | |
| }), | |
| define("constants/common", { | |
| storageKeys: { | |
| ENDPOINT_ID: "endpointId", | |
| PRESENCE_DATA: "presenceData", | |
| RESURECTION_KEY: "isResurected", | |
| RECENT_COUNTRY: "swx|recentCountry" | |
| }, | |
| browserProperties: { | |
| DEFAULT: { | |
| HIDDEN: "hidden", | |
| VISIBILITY_CHANGE: "visibilitychange" | |
| }, | |
| MS: { | |
| HIDDEN: "msHidden", | |
| VISIBILITY_CHANGE: "msvisibilitychange" | |
| }, | |
| MOZ: { | |
| HIDDEN: "mozHidden", | |
| VISIBILITY_CHANGE: "mozvisibilitychange" | |
| }, | |
| WEBKIT: { | |
| HIDDEN: "webkitHidden", | |
| VISIBILITY_CHANGE: "webkitvisibilitychange" | |
| } | |
| }, | |
| permission: { | |
| DEFAULT: "default", | |
| GRANTED: "granted", | |
| DENIED: "denied" | |
| }, | |
| events: { | |
| actions: { | |
| subscriptionCreation: "subscriptioncreation", | |
| getUserPresence: "getuserpresence", | |
| setUserPresence: "setuserpresence", | |
| getSelfProperties: "getselfproperties", | |
| messageSubmitted: "messagesubmitted" | |
| }, | |
| auth: { | |
| SIGNIN_FAILED: "signInFailed", | |
| SIGN_OUT: "signOut" | |
| }, | |
| callScreen: { | |
| CONTROLS_VISIBLE: "controlsVisible", | |
| VIDEO_STATE_CHANGED: "videoStateChanged", | |
| VIDEO_SIZE_CHANGED: "videoSizeChanged", | |
| SIDEBAR_TOGGLED: "sidebarToggled", | |
| VIDEO_ZOOMED_IN: "videoZoomedIn", | |
| TOGGLE_FULLSCREEN: "toggleFullscreen", | |
| TOGGLE_NARROW_MENU: "toggleNarrowMenu", | |
| BUTTON_FOCUSED: "buttonFocused", | |
| BUTTONS_WIDTH_CHANGED: "buttonsWidthChanged", | |
| ROSTER_WIDTH_CHANGED: "rosterWidthChanged", | |
| ADD_PARTICIPANT: "addParticipant", | |
| ADD_PARTICIPANT_VISIBLE: "addParticipantVisible", | |
| CALL_ESCALATED_TO_GROUP: "callEscalatedToGroup" | |
| }, | |
| contacts: { | |
| CONTACTS_LOADED: "contactsLoaded", | |
| CONTACT_REQUEST_SENT: "contactRequestSent", | |
| CONTACT_REQUEST_ACCEPTED: "contactRequestAccepted", | |
| CONTACT_REQUEST_DECLINED: "contactRequestDeclined" | |
| }, | |
| message: { | |
| RENDERED: "message:rendered", | |
| QUOTE: "message:quote", | |
| EDIT: "message:edit", | |
| AFTER_EXPANDED: "message:afterExpanded", | |
| BEFORE_EXPANDED: "message:beforeExpanded" | |
| }, | |
| resourceTypes: { | |
| userPresence: "userpresence" | |
| }, | |
| navigation: { | |
| OPEN_CONVERSATION: "navigate:conversation", | |
| NAVIGATE: "navigate:navigate", | |
| NAVIGATE_TO_PREVIOUS_PAGE: "navigate:previousPage", | |
| COMPONENT_RENDERED: "component:rendered", | |
| FRAGMENT_SHOW: "fragment:show", | |
| FRAGMENT_HIDE: "fragment:hide", | |
| FRAGMENT_BEFORE_SHOW: "fragment:beforeShow", | |
| FRAGMENT_BEFORE_HIDE: "fragment:beforeHide", | |
| FRAGMENT_LOADED: "fragment:loaded", | |
| FRAGMENT_REMOVE: "fragment:remove", | |
| FRAGMENT_REMOVE_ALL_HIDDEN: "fragment:removeAllHidden", | |
| LEAVE_EDIT_MODE: "leave:edit:mode", | |
| NOTIFICATIONS_CENTER: "navigate:notificationsCenter" | |
| }, | |
| search: { | |
| QUERY_CHANGED: "search", | |
| QUERY_EXECUTED: "searchFinished", | |
| RESET: "reset", | |
| DIRECTORY_SEARCH_RESULTS: "search:directory:results", | |
| DIRECTORY_SEARCH_RESULTS_RENDERED: "search:directory:results:rendered", | |
| DIRECTORY_SEARCH_ACTIVATED: "search:directory:activated", | |
| DIRECTORY_SEARCH_DEACTIVATED: "search:directory:deactivated", | |
| GROUPS_SEARCH_RESULTS: "search:groups:results", | |
| LOCAL_SEARCH_RESULTS: "search:local:results", | |
| LOCAL_SEARCH_RESULTS_RENDERED: "search:local:results:rendered", | |
| INPUT_FOCUS: "searchInput:focus", | |
| INPUT_BLUR: "searchInput:blur" | |
| }, | |
| roster: { | |
| ROSTER_QUERY_CHANGED: "roster:participants:search", | |
| ROSTER_QUERY_EXECUTED: "roster:participants:searchFinished", | |
| ROSTER_SELECTION_REMOVED: "roster:selection:removed", | |
| PICKER_CONTACT_SELECTED: "people:picker:selected", | |
| PICKER_CONTACT_DESELECTED: "people:picker:deselected", | |
| EDIT_ROSTER_MODE: "roster:editRosterMode" | |
| }, | |
| conversation: { | |
| JOINING_ENABLED: "conversation:joining:enabled", | |
| OPEN_PROFILE: "conversation:open:profile", | |
| CLOSE_PROFILE: "conversation:close:profile", | |
| COPY_LINK: "conversation:copy:link", | |
| EMAIL_LINK: "conversation:mail:link", | |
| SHARED: "conversation:shared", | |
| MARK_AS_READ: "conversation:mark:read", | |
| VIEWPORT_CHANGED: "conversation:viewport:changed", | |
| OVERLAY_CLOSED: "conversation:overlay:closed" | |
| }, | |
| expressionPicker: { | |
| ITEM_PREVIEW_REQUEST: "pes:picker:previewRequest", | |
| ITEM_SELECT_REQUEST: "pes:picker:selectRequest", | |
| ITEM_SEND_REQUEST: "pes:picker:sendRequest", | |
| ITEM_CANCEL_REQUEST: "pes:picker:cancelRequest", | |
| TAB_SELECT_REQUEST: "pes:tabs:selectRequest", | |
| CLOSE_REQUEST: "pes:picker:close", | |
| OPEN_REQUEST: "pes:picker:open", | |
| MRUITEM_ADD_REQUEST: "pes:mruitem:addRequest", | |
| MRUITEM_ADD_EMOTICON_REQUEST: "pes:mruitem:addEmoticonRequest" | |
| }, | |
| textarea: { | |
| SUBMIT_AND_FOCUS: "textarea:submitAndFocus", | |
| CHANGED: "textarea:changed", | |
| KEY_DOWN: "textarea:keyDown", | |
| KEY_PRESS: "textarea:keyPress", | |
| INPUT: "textarea:input", | |
| HAS_INPUT: "textarea:hasInput", | |
| INITIALIZATION_COMPLETE: "textarea:initializationComplete" | |
| }, | |
| chatInput: { | |
| INITIALIZATION_COMPLETE: "chatInput:initializationComplete" | |
| }, | |
| emoticonPicker: { | |
| EMOTICON_SELECTED: "emoticon:selected", | |
| CLOSE: "emoticon:close" | |
| }, | |
| errors: { | |
| SERVICE_FAILURE: "serviceFailure" | |
| }, | |
| system: { | |
| EXPERIENCE_INITIALIZED: "experienceInitialized", | |
| EXPERIENCE_READY: "experienceReady", | |
| BUTTON_CLICK: "buttonClick", | |
| FORCE_RESYNC: "webapi:forceResync", | |
| ONLINE_STATE_CHANGED: "webapi:onlineStateChanged", | |
| DATE_CHANGED: "dateChanged" | |
| }, | |
| trouter: { | |
| CONTACTLIST_CHANGE: 6, | |
| OFFLINE_AUTHREQUEST: 14, | |
| INCOMING_CALL: 100, | |
| INCOMING_SKYPE_NGC_CALL: 107, | |
| INCOMING_SKYPE_NGC_GVC_CALL: 109, | |
| INCOMING_LYNC_NGC_CALL: 105, | |
| INCOMING_STOP_RINGER: 104, | |
| INCOMING_SKYPE_NGC_STOP_RINGER: 110, | |
| USER_SERVICES_CHANGE: 601 | |
| }, | |
| newConversation: { | |
| CONFIRMED: "newConversation:confirmed", | |
| CANCELLED: "newConversation:cancelled" | |
| }, | |
| narrowMode: { | |
| SIDEBAR_STATE_CHANGED: "narrowMode:sidebarStateChanged", | |
| SHOW_SIDEBAR: "narrowMode:showSidebar", | |
| HIDE_SIDEBAR: "narrowMode:hideSidebar", | |
| SIDEBAR_TRANSITION_ENDED: "narrowMode:sidebarTransitionEnded" | |
| }, | |
| interaction: { | |
| SCROLL_START: "interaction:scrollStart" | |
| }, | |
| browser: { | |
| CLICK: "click", | |
| RESIZE: "resize", | |
| SCROLL: "scroll", | |
| FOCUS: "focus", | |
| BLUR: "blur", | |
| KEYDOWN: "keydown", | |
| MOUSEMOVE: "mousemove", | |
| MOUSEDOWN: "mousedown", | |
| BEFOREUNLOAD: "beforeunload", | |
| VISIBILITYCHANGE: "visibilitychange", | |
| TRANSITIONEND: "transitionend", | |
| MESSAGE: "message", | |
| CONTEXTMENU: "contextmenu" | |
| }, | |
| personalExpression: { | |
| CONFIG_INITIALIZED: "pes:configInitialized", | |
| CONFIG_PROCESSED: "pes:configProcessed", | |
| CDN_TOKEN_UPDATED: "pes:cdnTokenUpdated", | |
| store: { | |
| LOAD_PACKS: "pesStore:loadPacks", | |
| PACK_PURCHASED: "pesStore:packPurchased" | |
| } | |
| }, | |
| mediaPicker: { | |
| CLOSE_PICKER: "mediaPicker:closePicker", | |
| FILE_PICKER_SELECTED: "mediaPicker:filePickerSelected", | |
| SEND_CONTACTS_SELECTED: "mediaPicker:sendContactsSelected", | |
| POLL_BUTTON_SELECTED: "mediaPicker:pollButtonSelected" | |
| }, | |
| shareControl: { | |
| SHARE_CONTROL_SHOW: "shareControl:show", | |
| SHARE_CONTROL_HIDE: "shareControl:hide" | |
| }, | |
| skypeOut: { | |
| DIAL_BUTTON_CLICKED: "skypeOut:dialButtonClicked", | |
| INPUT_CHANGED: "skypeOut:inputChanged", | |
| INPUT_TYPE_TOUCH: "touch", | |
| INPUT_TYPE_MOUSE: "mouse", | |
| INPUT_TYPE_KEYBOARD: "keyboard" | |
| }, | |
| selectBox: { | |
| TOGGLE: "selectBox:toggle" | |
| }, | |
| userListPopup: { | |
| POPUP_TOGGLE: "userListPopup:toggle" | |
| }, | |
| videoPlayer: { | |
| FULLSCREEN_ON: "videoPlayer:fullscreenOn", | |
| FULLSCREEN_OFF: "videoPlayer:fullscreenOff" | |
| }, | |
| me: { | |
| PRESENCE_POPUP_SHOW: "presencePopup:show" | |
| } | |
| }, | |
| styleMode: { | |
| breakpoint: { | |
| NARROW: 420, | |
| MEDIUM: 600, | |
| WIDE: 800 | |
| }, | |
| NARROW: "style:narrow", | |
| MEDIUM: "style:medium", | |
| WIDE: "style:wide" | |
| }, | |
| notifications: { | |
| ERROR: "shellError", | |
| SUCCESS: "shellSuccess", | |
| WARNING: "shellWarning", | |
| INCOMING_CALL: "incomingCall", | |
| INCOMING_CALL_WITH_NO_PLUGIN: "incomingCallWithNoPlugin", | |
| INCOMING_CALL_BROWSER_NOT_SUPPORTED: "incomingCallBrowserNotSupported", | |
| INCOMING_CALL_OS_NOT_SUPPORTED: "incomingCallOsrNotSupported", | |
| DEVICE_MISSING_CAMERA: "cameraMissing", | |
| DEVICE_MISSING_MICROPHONE: "microphoneMissing", | |
| DEVICE_MISSING_SPEAKER: "speakerMissing", | |
| UNREAD_MESSAGE: "UnreadMessage", | |
| CONTACT_REQUEST: "ContactRequest", | |
| CHAT: "Chat", | |
| AUDIO: "Audio", | |
| AUDIO_CALL: "AudioCall", | |
| AVATAR_NOT_SUPPORTED_IMAGE_TYPE: "AvatarNotSupportedImageType", | |
| AVATAR_UPLOAD_ERROR: "AvatarUploadError" | |
| }, | |
| serviceLocator: { | |
| FEATURE_FLAGS: "featureFlagApi", | |
| CONTROLS_BUILDER: "controlsBuilder", | |
| NAVIGATION_CONTEXT: "navigation", | |
| PUBSUB: "pubSub", | |
| MODEL_UI_OBSERVER: "webClientModelObserver", | |
| SPLASH_SCREEN: "spashScreen", | |
| SUBSCRIPTION_PROVIDER: "subscriptionProvider", | |
| ACTION_TELEMETRY: "actionTelemetry", | |
| PES_MRU_SERVICE: "pesMRUService", | |
| PES_BING_SEARCH_SERVICE: "pesBingSearchService", | |
| URL_PREVIEW_SERVICE: "urlPreviewService", | |
| PES_CONFIG_SERVICE: "pesConfigService", | |
| PES_2_CONFIG_SERVICE: "pesConfigService:v2", | |
| PES_2_MRU_SERVICE: "pesMRUService:v2", | |
| PES_STORE_SERVICE: "pesStoreService", | |
| PROGRESSIVE_TIMEOUT: "progressiveTimeout" | |
| }, | |
| userOptions: { | |
| pluginAutoUpdateOptOutOption: "OPT_WEB_OPTOUT_AUTOUPDATE" | |
| }, | |
| msnpErrors: { | |
| nonExistingConverstion: 730, | |
| redirectionOverride: 752, | |
| missingEndpoint: 729 | |
| }, | |
| callingErrors: { | |
| AUTO_CALL_FAILED: "AUTO_CALL_FAILED" | |
| }, | |
| httpStatusCodes: { | |
| OK: 200, | |
| created: 201, | |
| badRequest: 400, | |
| unauthorized: 401, | |
| notFound: 404, | |
| forbidden: 403, | |
| preconditionFailed: 412, | |
| unprocessableEntity: 422, | |
| internalServerError: 500 | |
| }, | |
| onlineStates: { | |
| ONLINE: "state:online", | |
| OFFLINE: "state:offline" | |
| }, | |
| translatorServiceState: { | |
| NotReady: "NotReady", | |
| Authenticated: "Authenticated", | |
| Error: "Error" | |
| }, | |
| isTyping: { | |
| THROTTLE: 5e3, | |
| EXPIRY: 7e3, | |
| DETAILED_PARTICIPANTS_MAX_COUNT: 2, | |
| MESSAGE_TYPE: { | |
| SET_TYPING: "Control/Typing", | |
| CLEAR_TYPING: "Control/ClearTyping" | |
| } | |
| }, | |
| activityItemGroups: { | |
| PARTICIPANT: "participant", | |
| TEXT: "text", | |
| CALL: "live-session", | |
| NGC_UPGRADE: "ngc-upgrade", | |
| PLUGIN_FREE: "plugin-free", | |
| MEDIA: "media", | |
| CONTACT_REQUEST: "contact-request", | |
| MOJI: "moji", | |
| CONTACT_INFO: "contact-info", | |
| TRANSACTION: "transaction", | |
| POLL: "poll", | |
| PSTN: "pstn", | |
| CUSTOM: "custom" | |
| }, | |
| customActivityItemTemplates: { | |
| SPACES_WELCOME_MESSAGE: "spacesWelcomeMessage" | |
| }, | |
| featureFlags: { | |
| AGENTS_ENABLED: "agentsEnabled", | |
| AGENTS_DISCOVERABLE: "agentsDiscoverable", | |
| SHOW_AGENT_RATING_ON_PROFILE: "showAgentRatingOnProfile", | |
| URL_OVERRIDE_ENABLED: "urlOverrideEnabled", | |
| CONTACTLIST_CHANGE_NOTIFICATION: "contactListChangeNotification", | |
| SHOW_SPLASH_SCREEN: "showSplashScreen", | |
| BLOCK_CONTACT: "blockContact", | |
| DEACTIVATE_CACHE: "deactivateCache", | |
| HAS_TIMELINE_BADGE: "hasTimelineBadge", | |
| HAS_BETA_LABEL: "hasBetaLabel", | |
| HAS_FEEDBACK_LINK: "hasFeedbackLink", | |
| HAS_FEEDBACK_LINK_ON_ERROR: "hasFeedbackLinkOnError", | |
| HAS_FEEDBACK_ICON: "hasFeedbackIcon", | |
| DISABLE_KES: "disableKes", | |
| SKYPE_DIRECTORY_SEARCH: "skypeDirectorySearch", | |
| MUTE_NOTIFICATIONS: "muteNotifications", | |
| LAST_SEEN: "lastSeen", | |
| MOBILE_INDICATOR: "mobileIndicator", | |
| MOBILE_ACTIVE: "mobileActive", | |
| NEW_CONVERSATION_V2: "newConversationV2", | |
| SPACES: "spaces", | |
| SHOW_SPACES_WELCOME_MESSAGE: "showSpacesWelcomeMessage", | |
| SHOW_CONTACTS_PAGE_HINT: "showContactsPageHint", | |
| SHOW_CONTACTS_PAGE_INFORMATIONAL_MESSAGE: "showContactsPageInformationalMessage", | |
| INCOMING_SCREEN_SHARING: "incomingScreenSharing", | |
| INCOMING_WIKI_MARKUP: "incomingWikiMarkup", | |
| MESSAGE_ENFORCE_TEXT_FORMAT: "messageEnforceTextFormat", | |
| PHOTO_SHARING_ENABLED: "photoSharingEnabled", | |
| DELETE_CONTACT_USING_CONTACTS_SERVICE: "deleteContactUsingContactsService", | |
| SPACE_TOPIC_EDITOR: "spaceTopicEditor", | |
| HEADER_CONTROLS_DISABLED: "headerControlsDisabled", | |
| HIDE_SIDEBAR_ON_START: "hideSidebarOnStart", | |
| SINGLE_CONVERSATION_MODE: "singleConversationMode", | |
| DISABLE_POLLING_ON_KAHUNA: "disablePollingOnKahuna", | |
| ENABLE_RAW_EMOTICONS_RENDERING: "enableRawEmoticonsRendering", | |
| CONTENT_SEARCH: "contentSearch", | |
| SWIFT_CARD_COMMAND: "swiftCardCommand", | |
| SWIFT_CARD_RENDERING: "swiftCardRendering", | |
| UNREAD_MSG_LOGGING: "enableUnreadMessagesLogging", | |
| SEND_SKYPE_INITIATING_USERNAME: "sendSkypeInitiatingUsername", | |
| SHOW_MESSAGE_DELIVERY_INDICATOR_SW4B: "showMessageDeliveryIndicator", | |
| SHOW_MESSAGE_DELIVERY_STATUS: "showMessageDeliveryStatus", | |
| HIDE_EMOTICON_PICKER_BUTTON: "hideEmoticonPickerButton", | |
| IS_TYPING_INDICATOR: "isTypingIndicator", | |
| SERVICE_FAILURE_REPORTING: "serviceFailureReporting", | |
| CALLING: "calling", | |
| INCLUDE_SELF_IN_PARTICIPANTS_COUNT: "includeSelfInParticipantsCount", | |
| HIDE_USER_ROLE: "hideUserRole", | |
| SHOW_ALTERNATE_SHARE_DIALOG_EXPERIENCE: "showAlternateShareDialogExperience", | |
| IS_FLIK_MESSAGE_ENABLED: "isFlikMessageEnabled", | |
| PES_CDN_AUTH_ENABLED: "pesCDNAuthEnabled", | |
| PINNING_TO_DOGFOOD_CLOUD: "pinningToDogfoodCloud", | |
| NOTIFICATIONS_CENTER: "notificationsCenter", | |
| POLLS_ENABLED: "pollsEnabled", | |
| SUPPORT_MESSAGE_PROPERTIES: "supportMessageProperties", | |
| ENABLE_PING_ECS_CONFIG: "enablePingEcsConfig", | |
| ENABLE_ENDPOINT_ECS_CONFIG: "enableEndpointEcsConfig", | |
| SUPPORT_STANDBY_MODE: "supportStandbyMode", | |
| MENTIONS_ENABLED: "mentionsEnabled", | |
| ALTERNATIVE_SIDEBAR_LAYOUT_ENABLED: "alternativeSidebarLayout", | |
| CONTEXT_MENU_QUOTE_MESSAGES_ENABLED: "contextMenuQuoteMessagesEnabled", | |
| CONTEXT_MENU_SAVE_VIDEO_MESSAGES_ENABLED: "contextMenuSaveVideoMessagesEnabled", | |
| SHOW_CONTACTS_PAGE_SIGN_IN: "showContactsPageSignIn", | |
| HIDE_CONVERSATION_HEADER: "hideConversationHeader", | |
| SKIP_CHAT_CAPABILITY_CHECK: "skipChatCapabilityCheck", | |
| DISABLE_PERSISTENT_CONTACT_PRESENCE_SUBSCRIPTION: "disablePersistentContactPresenceSubscription", | |
| ENABLE_CONTACT_MANAGEMENT: "enableContactManagement", | |
| URL_PREVIEWS: "urlPreviews", | |
| SILENT_LINKING: "silentLinking", | |
| REMOVE_CONVERSATION_HISTORY: "removeConversationHistory", | |
| PES_CDN_AUTH_URL_FALLBACK_ENABLED: "pesCDNAuthUrlFallbackEnabled", | |
| PES_FETCH_SMALL_ASSETS_ON_DEMAND: "pesFetchSmallAssetsOnDemand", | |
| PES_FETCH_MEDIUM_ASSETS_ON_DEMAND: "pesFetchMediumAssetsOnDemand", | |
| PES_FETCH_LARGE_ASSETS_ON_DEMAND: "pesFetchLargeAssetsOnDemand", | |
| PES_FETCH_MOJI_ASSETS_ON_DEMAND: "pesFetchMojiAssetsOnDemand", | |
| PES_USE_EXTRA_LARGE_EMOTICONS: "pesUseExtraLargeEmoticons", | |
| PES_BING_IMAGE_SEARCH_ENABLED: "pesBingImageSearchEnabled", | |
| PES_LOCAL_SEARCH_ENABLED: "pesLocalSearchEnabled", | |
| PES_V2_ENABLED: "pesV2Enabled", | |
| EMOTICON_SUGGESTION_ENABLED: "emoticonSuggestionEnabled", | |
| EMOTICON_IMPLICIT_SUGGESTION_DISABLED: "emoticonImplicitSuggestionDisabled", | |
| SUGGEST_HIDDEN_EMOTICONS: "suggestHiddenEmoticons", | |
| PES_STORE_ENABLED: "pesStoreEnabled", | |
| YOUTUBE_PLAYER_ENABLED: "youtubePlayer", | |
| FILE_DRAG_DROP_ENABLED: "fileDragDropEnabled", | |
| FILE_PASTE_ENABLED: "filePasteEnabled", | |
| USE_BUSINESS_WORDING: "useBusinessWording", | |
| FILE_TRANSFER_ENABLED: "fileTransferEnabled", | |
| CONTEXT_MENU_LIKE_MESSAGES_ENABLED: "contextMenuLikeMessagesEnabled", | |
| SHOW_DEFAULT_AVATAR_IN_NOTIFICATIONS: "showDefaultAvatarInNotifications", | |
| MEDIA_BAR_ENABLED: "mediaBarEnabled", | |
| SHOW_SEARCH_QUERY_MORE_RESULTS_AVAILABLE: "showSearchQueryMoreResultsAvailable", | |
| PSTN_ENABLED: "PSTN", | |
| CQF_ENABLED: "CQF", | |
| CONSOLE_LOGGING: "consoleLogging", | |
| ISSUE_REPORTING: "issueReporting", | |
| CALL_INFO_COMMAND: "callInfoCommand", | |
| ERROR_LOG_REPORTING: "errorLogReporting", | |
| AGGRESSIVE_IMPLICT_MENTIONS_MATCHING: "aggressiveImplicitMentionsMatching", | |
| ENABLE_AGGRESSIVE_MENTIONS_TOAST: "enableAggressiveMentionsToast", | |
| SEND_CONTACT_CARD_ENABLED: "sendContactCardEnabled", | |
| NOTIFY_HOST_EVEN_WHEN_ME_NOTAVAILABLE: "notifyHostEvenWhenMeNotAvailable", | |
| HEARTS_ENABLED: "heartsEnabled", | |
| HEARTS_NOTIFICATION_ENABLED: "heartsNotificationEnabled", | |
| TRANSLATOR_SENDING_ENABLED: "translatorSendingEnabled", | |
| RE_AUTH_ENABLED: "reAuthEnabled", | |
| CONTACT_CARD_RENDERING_ENABLED: "contactCardRenderingEnabled", | |
| NEW_URLP_DOMAIN_ENABLED: "newUrlPreviewDomainEnabled", | |
| IS_CLOUD_VIDEO_MESSAGE_ENABLED: "isCloudVideoMessageEnabled", | |
| CREDIT_GIFTING: "creditGifting", | |
| AUTO_CALLING: "autoCalling", | |
| GVC_ESCALATION: "GVCEscalation", | |
| GVC_LOCAL_ESCALATION: "GVCLocalEscalation", | |
| GVC_JOINING: "GVCJoining", | |
| GVC_OUTGOING: "GVCOutgoing", | |
| PERSISTENT_PLUGIN: "persistentPlugin", | |
| PERSISTENT_SHELL_APP: "persistentShellApp", | |
| PLUGINLESS_CALLING_CHROME: "pluginlessCallingChrome", | |
| PLUGINLESS_CALLING_CHROME_LINUX: "pluginlessCallingChromeLinux", | |
| PLUGINLESS_CALLING_EDGE: "pluginlessCallingEdge", | |
| PLUGINLESS_CALLING_FIREFOX: "pluginlessCallingFirefox", | |
| PLUGINLESS_CALLING_ELECTRON: "pluginlessCallingElectron", | |
| PRELOAD_PLUGIN: "preloadPlugin", | |
| PRELOAD_SHELL_APP: "preloadShellApp", | |
| NG_CALLING: "NGCalling", | |
| FAIL_INITIALIZATION_FOR_IE_AND_EDGE: "failInitializationOnIE", | |
| SHELL_APP_LOGS: "shellAppLogs", | |
| INVITE_FREE: "inviteFree", | |
| INVITE_FREE_IMPLICIT_INCOMING_CONTACT_REQUEST: "inviteFreeImplicitIncomingContactRequest", | |
| SHORT_CIRCUIT: "shortCircuit", | |
| USER_SETTINGS_ENABLED: "userSettingsEnabled", | |
| SHOW_UNLISTED_SETTINGS: "showUnlistedSettings", | |
| LOCATION_MESSAGE_SUPPORT: "locationMessageSupport", | |
| READ_RECEIPT_ENABLED: "readReceiptEnabled", | |
| URL_PREVIEW_LOAD_YOUTUBE_PLAYER: "urlPreviewLoadYoutubePlayer", | |
| SEARCH_EDUCATION_BUBBLE: "searchEducationBubble", | |
| CHAT_EDUCATION_BUBBLE: "chatEducationBubble", | |
| CALL_EDUCATION_BUBBLE: "callEducationBubble", | |
| SCHEDULE_CALL_EDUCATION_BUBBLE_1: "scheduleCallEducationBubble1", | |
| SCHEDULE_CALL_EDUCATION_BUBBLE_2: "scheduleCallEducationBubble2", | |
| WELCOME_DIALOG: "welcomeDialog", | |
| TELEMETRY_SEARCH_ENABLED: "telemetrySearchEnabled", | |
| TELEMETRY_UIACTIONPERF_ENABLED: "uiActionPerfTelemetryEnabled", | |
| TELEMETRY_RUNTIME_ERRORS_ENABLED: "runtimeErrorsTelemetryEnabled", | |
| DO_NOT_SEND_CONTACTS_TO_CHAT_SERVICE: "doNotSendContactsToChatService", | |
| CONTACT_PROFILE_CACHE: "contactProfileCache", | |
| PRESENCE_DATA_CACHE: "presenceDataCache", | |
| SCHEDULE_CALL_FROM_CONVERSATION: "scheduleCallFromConversation", | |
| USE_LEGACY_SCHEDULER_URI_FORMAT: "useLegacySchedulerUriFormat", | |
| DIRECTORY_SEARCH_SKYPE_AND_LYNC: "directorySearchSkypeAndLync", | |
| CONTACT_PROFILE: "contactProfile", | |
| GIPHY: "giphy", | |
| SKYPE_CALL_POLICY_SUPPORT: "skypeCallPolicySupport", | |
| SKYPE_VIDEO_CALLING_POLICY_SUPPORT: "skypeVideoCallingPolicySupport", | |
| SHORT_CIRCUIT_SUPPORT: "shortCircuit", | |
| NEW_SELF_PRESENCE: "newSelfPresence", | |
| BATCH_PROFILES_V2: "batchProfilesV2", | |
| CONTACT_PAGE_FILTER_TABS: "contactPageFilterTabs", | |
| USE_AZURE_BASED_SILENT_LOGIN: "useAzureBasedSilentLogin" | |
| }, | |
| autoCallingMode: { | |
| call: "Call", | |
| join: "Join" | |
| }, | |
| cqfCallType: { | |
| audio: "audio", | |
| video: "video" | |
| }, | |
| autoCallingThreadId: "autoCallingThreadId", | |
| capabilities: { | |
| chat: "im.receive", | |
| audio: "audio.receive", | |
| video: "video.receive", | |
| screenSharing: "screen_share", | |
| groupAdd: "group.add" | |
| }, | |
| modalityType: { | |
| CHAT: "Chat", | |
| AUDIO: "Audio", | |
| VIDEO: "Video", | |
| SCREENSHARING: "ScreenSharing", | |
| DATACOLLABORATION: "DataCollaboration" | |
| }, | |
| apiUIEvents: { | |
| SWX_TIMELINE_LOADED: "swx:timeline:loaded", | |
| SWX_CONTENT_LOADED: "swx:content:loaded", | |
| SWX_SPLASHSCREEN_LOADED: "swx:splashscreen:loaded", | |
| SWX_CALLSCREEN_MAXIMIZE: "swx:callscreen:maximize", | |
| SWX_ON_SIGN_OUT: "swx:on:sign:out", | |
| SWX_SINGLE_CONVERSATION: "swx:single:conversation" | |
| }, | |
| chat: { | |
| messageType: { | |
| OUTGOING: "Outgoing", | |
| INCOMING: "Incoming" | |
| } | |
| }, | |
| telemetry: { | |
| APP_SOURCE_NAME: "SWX", | |
| uiActions: { | |
| TYPE: "ui_action" | |
| }, | |
| runtimeErrors: { | |
| TYPE: "runtime_error" | |
| }, | |
| calling: { | |
| MASTER_EVENT: "calling", | |
| CALL_INFO: "CallInfo", | |
| START_CALL: "StartCall", | |
| END_CALL: "EndCall", | |
| RINGING_CALL: "RingingCall", | |
| CONNECTED_CALL: "ConnectedCall", | |
| UNKNOWN_CONTACT_TYPE: "unknown", | |
| PARTICIPANTS_COUNT_PREFIX: "participantsCount_", | |
| direction: { | |
| OUTGOING: "Outgoing call", | |
| INCOMING: "Incoming call" | |
| }, | |
| P2P_TO_NGC_NOTIFICATION_DURATION: "P2PtoNGCNotificationDuration", | |
| callType: { | |
| S2S: "S2S", | |
| SkypeOut: "SkypeOut", | |
| SkypeIn: "SkypeIn" | |
| }, | |
| AVAILABLE: "Available", | |
| UNAVAILABLE: "Unavailable", | |
| NA: "N/A" | |
| }, | |
| autoCalling: { | |
| MASTER_EVENT: "autoCalling", | |
| SERVICE_FAILURE: "serviceFailure", | |
| AUTO_CALL_ENDED: "autoCallEnded", | |
| AUTO_CALL_PAYLOAD_INVALID: "autoCallPayloadInvalid", | |
| AUTO_CALL_HANDLING_ERROR: "autoCallHandlingError", | |
| HOST_JOINED: "hostJoined", | |
| PARTICIPANT_JOINED: "participantJoined", | |
| ATTEMPT_TO_JOIN: "attemptToJoin" | |
| }, | |
| chat: { | |
| UI_SEND_MESSAGE: "ui_sendMessage", | |
| UI_EDIT_MESSAGE: "ui_editMessage", | |
| FILE_TRANSFER: "file_transfer", | |
| VIDEO_MESSAGE: { | |
| TYPE: "video_message", | |
| action: { | |
| FIRST_PLAY: "firstPlay", | |
| PLAY: "play", | |
| FULLSCREEN: "fullscreen", | |
| SEEK: "seeking", | |
| REPLAY: "replay" | |
| }, | |
| eventName: { | |
| LOADED: "loaded" | |
| } | |
| } | |
| }, | |
| contacts: { | |
| type: { | |
| CONTACTS: "Contacts", | |
| CONTACT_REQUESTS: "ContactRequests" | |
| }, | |
| name: { | |
| GET_CONTACT_LIST: "GetContactList", | |
| GET_CONTACT_LIST_DELTA: "GetContactListDelta", | |
| CONTACT_REQUEST_READ: "ContactRequestRead", | |
| CONTACT_REQUEST_ACCEPTED: "AcceptContact", | |
| CONTACT_REQUEST_DECLINED: "DeclineContact", | |
| CONTACT_BLOCKED: "ContactBlocked", | |
| CONTACT_UNBLOCKED: "ContactUnblocked", | |
| CONTACT_DELETED: "ContactDeleted", | |
| GET_PROFILES: "GetProfiles", | |
| ADD_CONTACT: "AddContact", | |
| CONTACTS_PAGE_PERFORMANCE: "ContactsPagePerformance", | |
| DISCOVER_AGENTS_PAGE_PERFORMANCE: "DiscoverAgentsPagePerformance", | |
| PROFILE_OPENED: "contact_profile_opened" | |
| }, | |
| shortCircuit: { | |
| START: "log_sc_start", | |
| FINISHED: "log_sc_finished" | |
| } | |
| }, | |
| agents: { | |
| type: { | |
| AGENTS: "Agents" | |
| }, | |
| name: { | |
| DISCOVER_AGENTS_PAGE_PERFORMANCE: "DiscoverAgentsPagePerformance" | |
| } | |
| }, | |
| pes: { | |
| eventName: { | |
| MOJI_SENT: "moji_sent", | |
| MOJI_PLAYED: "moji_played", | |
| EMO_SENT: "emo_sent", | |
| IMAGE_SENT: "image_sent" | |
| }, | |
| section: { | |
| FEATURED: "FEATURED", | |
| REGULAR: "REGULAR" | |
| }, | |
| source: { | |
| TYPED: "TYPED", | |
| ROSTER: "ROSTER", | |
| RECENTS: "RECENTS" | |
| }, | |
| UNKNOWN: "N/A" | |
| }, | |
| presence: { | |
| TYPE: "Presence", | |
| name: { | |
| SET_ME_PRESENCE: "SetMePresence", | |
| GET_CONTACTS_PRESENCE: "GetContactsPresence" | |
| } | |
| }, | |
| search: { | |
| TYPE: "Search" | |
| }, | |
| promiseInvalidStateException: { | |
| TYPE: "PromiseInvalidStateException", | |
| feature: { | |
| GROUP_SEARCH: "GroupSearch", | |
| CONTACT_PICKER: "ContactPicker", | |
| PEOPLE_SEARCH: "PeopleSearch" | |
| } | |
| }, | |
| NOT_AVAILABLE: "n/a", | |
| trouter: { | |
| NEW_CONNECTION: "newConnection", | |
| ENDPOINT_REGISTRATION_FAILED: "endpointRegistrationFailed", | |
| TROUTER_READY_TIMEOUT: "trouterReadyTimeout", | |
| TROUTER_READY_EVENT: "trouterReadyEvent", | |
| TROUTER_AUTH_EVENT: "trouterAuthEvent", | |
| RENEWAL: "renewal", | |
| AUTHENTICATION_FAILED: "authenticationFailed", | |
| AUTHENTICATION_SUCCEEDED: "authenticationSucceeded", | |
| TROUTER_RECONNECTING: "trouterReconnecting", | |
| TROUTER_INIT: "trouterinit" | |
| }, | |
| conversationJoined: { | |
| TYPE: "weblauncher_join", | |
| result: { | |
| SIGNED_IN: "signed_in", | |
| SIGNED_OUT: "signed_out", | |
| SUCCESS: "success", | |
| INCONCLUSIVE: "inconclusive" | |
| }, | |
| milestoneType: { | |
| CLIENT_INIT: "client_init", | |
| ERROR: "error", | |
| END: "end" | |
| } | |
| }, | |
| guestActionsInHeader: { | |
| TYPE: "chat_guest_headerActions", | |
| cta: { | |
| PROFILE_TOGGLED: "profileToggled", | |
| COPY_LINK: "copyLink", | |
| EMAIL_LINK: "emailLink" | |
| }, | |
| telemetryItem: { | |
| AVATAR: "telemetryItemAvatar", | |
| TOPIC: "telemetryItemTopic", | |
| CHEVRON_DOWN: "telemetryItemChevronDown", | |
| CHEVRON_UP: "telemetryItemChevronUp" | |
| }, | |
| parent: { | |
| GROUP_PROFILE_VIEW_MODEL: "GroupProfileViewModel", | |
| HEADER_VIEW_MODEL: "HeaderViewModel" | |
| } | |
| }, | |
| removeConversationHistory: { | |
| TYPE: "swx_conversation_removeHistory", | |
| cta: { | |
| TIMELINE_MENU: "timeline", | |
| PROFILE: "profile" | |
| }, | |
| action: { | |
| CANCELED: "canceled", | |
| CONFIRMED: "confirmed" | |
| } | |
| }, | |
| leaveConversation: { | |
| TYPE: "swx_conversation_leave", | |
| cta: { | |
| TIMELINE_MENU: "timeline", | |
| PROFILE: "profile" | |
| }, | |
| action: { | |
| CANCELED: "canceled", | |
| CONFIRMED: "confirmed" | |
| } | |
| }, | |
| sendContacts: { | |
| TYPE: "message_contactInfo_send", | |
| cta: { | |
| MEDIABAR: "mediabar" | |
| }, | |
| action: { | |
| CANCELED: "canceled", | |
| CONFIRMED: "confirmed" | |
| } | |
| }, | |
| urlPreviewShown: { | |
| TYPE: "message_urlpreview_show" | |
| }, | |
| urlPreviewClicked: { | |
| TYPE: "message_urlpreview_action" | |
| }, | |
| contactInfo: { | |
| TYPE: "message_contactinfo_receive", | |
| action: { | |
| SHOW: "showed", | |
| CLICK: "clicked" | |
| } | |
| }, | |
| messageSent: { | |
| TYPE: "kpi_message_sent" | |
| }, | |
| mediaBarEvent: { | |
| TYPE: "media_bar_event" | |
| }, | |
| timelineLoadEvent: { | |
| TYPE: "chat_timeline_load" | |
| }, | |
| conversationHistoryLoadEvent: { | |
| TYPE: "chat_conversation_historyLoad" | |
| }, | |
| splashScreenEvent: { | |
| TYPE: "experience_load_times" | |
| }, | |
| notificationActionsEvent: { | |
| TYPE: "notificationActions", | |
| action: { | |
| accept: "accept", | |
| decline: "decline", | |
| open: "open" | |
| } | |
| }, | |
| translator: { | |
| eventType: { | |
| OUTGOING: "translator_message_outgoing", | |
| INCOMING: "translator_message_incoming", | |
| SETTINGS_SHOW: "translator_settings_show", | |
| SETTINGS_HIDE: "translator_settings_hide", | |
| SETTINGS_BUTTON_ENABLED: "translator_settings_button_enabled", | |
| ME_LANGUAGE_CHANGED: "translator_me_language_changed", | |
| PARTICIPANT_LANGUAGE_CHANGED: "translator_participant_language_changed" | |
| }, | |
| action: { | |
| CLICK_SEE_ORIGINAL: "click_see_original", | |
| CLICK_SEE_TRANSLATION: "click_see_translation", | |
| TRANSLATE: "translate", | |
| RETRANSLATE: "re-translate", | |
| SHOW: "show" | |
| }, | |
| initiator: { | |
| ESCAPE_KEY: "escape_key", | |
| CLICK_GLOBE_BUTTON: "click_globe_button" | |
| } | |
| }, | |
| performanceMarks: { | |
| EXPERIENCE: { | |
| INIT_START: "swx_timeline_initStart", | |
| INIT_END_OK: "swx_timeline_initEnd_ok", | |
| INIT_END_404: "swx_timeline_initEnd_404", | |
| INIT_END_ERROR: "swx_timeline_initEnd_err", | |
| TTL_START: "swx_experience_ttl_start", | |
| CONTENT_INIT: "swx_content_initStart" | |
| }, | |
| TIMELINE: { | |
| RENDER_END: "swx_timeline_renderEnd", | |
| SYNC_START: "swx_timeline_syncStart", | |
| SYNC_END_OK: "swx_timeline_syncEnd_ok", | |
| SYNC_END_404: "swx_timeline_syncEnd_404", | |
| SYNC_END_ERROR: "swx_timeline_syncEnd_err" | |
| }, | |
| CONVERSATION: { | |
| TTP: "swx_conversation_ttp" | |
| }, | |
| NEW_CONVERSATION: { | |
| FLOW_START: "swx_newConversation_flowStart", | |
| CREATION_START: "swx_newConversation_creationStart", | |
| CREATION_END_OK: "swx_newConversation_creationEnd_ok", | |
| CREATION_END_404: "swx_newConversation_creationEnd_404", | |
| CREATION_END_ERROR: "swx_newConversation_creationEnd_err", | |
| RENDER_END: "swx_newConversation_renderEnd" | |
| }, | |
| CONVERSATION_UPDATE: { | |
| UPDATE_START: "swx_conversationupdate_start", | |
| UPDATE_END: "swx_conversationupdate_end", | |
| SYNC_END: "swx_conversationupdate_syncEnd" | |
| }, | |
| IM_SEND: { | |
| POST_START: "swx_imSend_postStart", | |
| POST_END_OK: "swx_imSend_postEnd_ok", | |
| POST_END_404: "swx_imSend_postEnd_404", | |
| POST_END_ERROR: "swx_imSend_postEnd_err" | |
| }, | |
| CONTACTS: { | |
| LIST_LOAD: { | |
| START: "swx_contact_list_load", | |
| END: "swx_contact_list_end" | |
| }, | |
| PAGE: { | |
| OPENED: "swx_contacts_page_opened", | |
| INITIALIZED: "swx_contacts_page_initialized", | |
| RENDERED: "swx_contacts_page_rendered" | |
| } | |
| }, | |
| DISCOVER_AGENTS: { | |
| LIST_LOAD: { | |
| START: "swx_discover_agents_list_load", | |
| END: "swx_discover_agents_list_end" | |
| }, | |
| PAGE: { | |
| OPENED: "swx_discover_agents_page_opened", | |
| INITIALIZED: "swx_discover_agents_page_initialized", | |
| RENDERED: "swx_discover_agents_page_rendered" | |
| } | |
| }, | |
| CALLING: { | |
| INCOMING: { | |
| P2P_IN_PLUGINLESS_START: "swx_calling_incoming_p2p_in_pluginless_start", | |
| P2P_IN_PLUGINLESS_END: "swx_calling_incoming_p2p_in_pluginless_end" | |
| } | |
| }, | |
| SEARCH: { | |
| LOCAL: { | |
| START: "swx_search_local_start", | |
| END: "swx_search_local_end", | |
| RESULTS_RENDERED: "swx_search_local_results_rendered" | |
| }, | |
| GLOBAL: { | |
| START: "swx_search_global_start", | |
| END: "swx_search_global_end", | |
| RESULTS_RENDERED: "swx_search_global_results_rendered" | |
| } | |
| }, | |
| SKYPEOUT: { | |
| PAGE: { | |
| OPENED: "swx_skypeout_page_opened" | |
| } | |
| }, | |
| USER_SETTINGS: { | |
| PAGE: { | |
| OPENED: "swx_settings_page_opened" | |
| } | |
| } | |
| }, | |
| measurements: { | |
| EXPERIENCE: { | |
| TTL: "swx_experience_ttl", | |
| TTL404: "swx_experience_ttl", | |
| SPLASH_TIME: "swx_experience_splash_screen_time" | |
| }, | |
| TIMELINE: { | |
| TTL: "swx_timeline_ttl", | |
| TTL404: "swx_timeline_ttl", | |
| TTR: "swx_timeline_ttr" | |
| }, | |
| NEW_CONVERSATION: { | |
| TTC: "swx_newConversation_ttc", | |
| TTS: "swx_newConversation_tts", | |
| TTR: "swx_newConversation_ttr" | |
| }, | |
| CONVERSATION_UPDATE: { | |
| TTC: "swx_conversationupdate_ttc", | |
| TTS: "swx_conversationupdate_tts" | |
| }, | |
| IM_SEND: { | |
| TTS: "swx_imsend_tts", | |
| TTS404: "swx_imsend_tts_404", | |
| TTR: "swx_imsend_ttr" | |
| }, | |
| CONTACTS: { | |
| LIST_LOAD: { | |
| TTC: "swx_contacts_list_load_ttc" | |
| }, | |
| PAGE: { | |
| TTC: "swx_contacts_page_ttc", | |
| TTR: "swx_contacts_page_ttr" | |
| } | |
| }, | |
| DISCOVER_AGENTS: { | |
| LIST_LOAD: { | |
| TTC: "swx_discover_agents_list_load_ttc" | |
| }, | |
| PAGE: { | |
| TTC: "swx_discover_agents_page_ttc", | |
| TTR: "swx_discover_agents_page_ttr" | |
| } | |
| }, | |
| CALLING: { | |
| INCOMING: { | |
| TBN: "swx_calling_incoming_tbn" | |
| } | |
| }, | |
| SEARCH: { | |
| LOCAL: { | |
| TTR: "swx_search_local_ttr" | |
| }, | |
| GLOBAL: { | |
| TTR: "swx_search_global_ttr" | |
| } | |
| } | |
| }, | |
| stages: { | |
| NEW_CONVERSATION: { | |
| STARTED: 1, | |
| CREATED: 2, | |
| REDIRECTED: 3, | |
| ABANDONED: 4 | |
| }, | |
| CONVERSATION_UPDATE: { | |
| COMPLETED: 1, | |
| CANCELLED: 2, | |
| ABANDONED: 3 | |
| } | |
| }, | |
| conversationType: { | |
| UNKNOWN: -1, | |
| DIALOG: 0, | |
| GROUP: 1 | |
| }, | |
| persona: { | |
| NEWBEE: 1, | |
| RETURNING: 2, | |
| CLASSIC_IM: 3, | |
| POWER_IM: 4 | |
| }, | |
| historyLoadOrigin: { | |
| TIMELINE_INIT: 1, | |
| NOTIFICATION_CONV: 2, | |
| NOTIFICATION_AGGR: 3, | |
| CONTACT_SEARCH: 4, | |
| GROUP_SEARCH: 5, | |
| DIRECTORY_SEARCH: 6, | |
| NEW_CHAT_OPEN_EXISTING: 7, | |
| PAGING: 8, | |
| CALLING: 9, | |
| AUTHOR_SWITCH: 10, | |
| ROSTER: 11, | |
| CONVERSATION_TO_THREAD: 12, | |
| NEW_CHAT_CREATION: 13, | |
| TIMELINE_CLICK: 14, | |
| CONTACT_REQUEST_DECLINED: 15, | |
| NEW_CHAT_DUMMY: 16, | |
| NEW_CHAT_API_START_CONVERSATION: 17, | |
| CONTACTS_PAGE: 18, | |
| SKYPEOUT_PAGE: 19, | |
| NEW_CONVERSATION_API: 20, | |
| CONVERSATION_HEADER_BUTTON: 21, | |
| CREATE_CONVERSATION_FOR_SCHEDULED_CALL: 22, | |
| DISCOVER_AGENTS_PAGE: 23, | |
| MENTION_ME: 99 | |
| }, | |
| timelineLoadOrigin: { | |
| LOAD: 1, | |
| RELOAD: 2, | |
| RESSURECT: 3 | |
| }, | |
| messageTypes: { | |
| MEDIA_VIDEO: 1, | |
| MEDIA_PICTURE: 2, | |
| MEDIA_LOCATION: 4, | |
| CALLING_OTHER: 8, | |
| FILES_MASK: 4080, | |
| FILES_PICTURE: 16, | |
| FILES_VIDEO: 32, | |
| FILES_OFFICE: 64, | |
| FILES_ARCHIVE: 128, | |
| FILES_BINARY: 256, | |
| FILES_PDF: 512, | |
| FILES_OTHER: 1024, | |
| FILES_AUDIO: 2048, | |
| RICHTEXT_MASK: 61440, | |
| RICHTEXT_FORMAT: 4096, | |
| RICHTEXT_EMOTICONS: 8192, | |
| RICHTEXT_ME: 16384, | |
| RICHTEXT_OTHER: 32768, | |
| CONTACT_OTHER: 65536, | |
| TEXT_MASK: 15728640, | |
| TEXT_ME: 1048576, | |
| TEXT_OTHER: 2097152, | |
| OTHER_TYPES: 16777216 | |
| }, | |
| subCategories: { | |
| LOCAL_CONTACT_SEARCH: "LocalContactSearch", | |
| GLOBAL_CONTACT_SEARCH: "GlobalContactSearch", | |
| LOAD_CONTACTS: "LoadContacts" | |
| }, | |
| poll: { | |
| eventName: { | |
| DESIGNER_OPENED: "poll_ui_designer_opened", | |
| STICKY_MESSAGE_CLICKED: "poll_ui_sticky_message_clicked", | |
| AVATAR_ELIPSIS_CLICKED: "poll_ui_avatar_elipsis_clicked", | |
| ERROR: "poll_error", | |
| ANSWER_LENGTH: "poll_ui_answer_length", | |
| ACTIVITY: "poll_activity" | |
| }, | |
| activityType: { | |
| SEND: "send", | |
| VOTE: "vote", | |
| QUOTE: "quote", | |
| EDIT: "edit", | |
| REMOVE: "remove", | |
| CLOSE: "close" | |
| }, | |
| errorType: { | |
| PARSING: "parsing", | |
| SEND: "send", | |
| OTHER: "other" | |
| }, | |
| property: { | |
| CONVERSATION_ID: "conversation_id", | |
| MESSAGE_ID: "message_id", | |
| ACTIVITY_TYPE: "activity_type", | |
| ERROR_TYPE: "error_type", | |
| XMM_TYPE: "xmm_type", | |
| QUESTION_LENGTH: "question_length", | |
| ANSWER_LENGTH: "answer_length", | |
| ANSWERS_COUNT: "answers_count", | |
| MULTI_VOTE: "multi_vote", | |
| IS_NEW_VOTE: "is_new_vote", | |
| TOTAL_VOTES: "total_votes", | |
| TIME_SINCE_CREATION: "time_since_creation" | |
| } | |
| }, | |
| userSettings: { | |
| eventName: { | |
| PREFERENCE_FETCHED: "user_settings_preference_fetched", | |
| PREFERENCE_CHANGED: "user_settings_preference_changed", | |
| PANEL_SHOWN: "user_settings_panel_shown", | |
| PAGE_DISMISSED: "user_settings_page_dismissed" | |
| }, | |
| outcomeNames: { | |
| SUCCESS: "success", | |
| FAILURE: "failure" | |
| }, | |
| property: { | |
| ITEM_NAME: "name", | |
| ITEM_VALUE: "value", | |
| OPERATION_OUTCOME: "outcome", | |
| OPERATION_DURATION: "duration" | |
| }, | |
| UNKNOWN: "N/A" | |
| }, | |
| inappActivity: { | |
| KPI_INAPP_ACTIVITY_START: "kpi_inapp_activity_start", | |
| KPI_INAPP_ACTIVITY_END: "kpi_inapp_activity_end" | |
| }, | |
| pstn: { | |
| eventName: { | |
| PSTN_BUTTON_CLICKED: "kpi_pstn_button_clicked", | |
| PSTN_CALL_INITIATED: "kpi_pstn_call_initiated", | |
| ADD_CREDIT: "kpi_pstn_add_credit", | |
| ADD_SUBSCRIPTION: "kpi_pstn_add_subscription", | |
| CREDIT_BALANCE_UPDATE_CALL_END: "kpi_pstn_credit_balance_latency_call_end" | |
| }, | |
| entryPoint: { | |
| CONTACT_LIST: "Contact List", | |
| SKYPE_OUT_PAGE: "Skype Out Page", | |
| CONVERSATION: "Conversation", | |
| RECENTS: "Recents", | |
| SEARCH: "Search Results", | |
| NO_CREDIT_CALL_START: "No Credit Call Start", | |
| NO_CREDIT_CALL_END: "No Credit Call End", | |
| NO_SUBSCRIPTION_CALL_START: "No Subscription Call Start", | |
| NO_SUBSCRIPTION_CALL_END: "No Subscription Call End" | |
| }, | |
| cssClasses: { | |
| ADD_CREDIT: "js-addCredit", | |
| ADD_SUBSCRIPTION: "js-addSubscription" | |
| } | |
| } | |
| }, | |
| globalizationFormatKeys: { | |
| time: { | |
| CALL_DURATION: "duration", | |
| SHORT: "short" | |
| }, | |
| date: { | |
| DAY_MONTH: "dayMonth", | |
| DAY_MONTH_YEAR: "dayMonthYear", | |
| DAY_ABBREVIATION: "dayAbbr", | |
| DAY_NAME: "dayName", | |
| DATE_ABBREVIATION: "dateAbbr", | |
| SHORT_DATE_ABBREVIATION: "shortDateAbbr" | |
| } | |
| }, | |
| api: { | |
| renderConversation: { | |
| errorMessages: { | |
| CONTAINER_UNDEFINED: "Container is undefined", | |
| CONTAINER_NOT_ELEMENT_NOT_SELECTOR: "Container is not a DOM element or CSS selector", | |
| PARTICIPANTS_WRONG_FORMAT: "Participants are expected to be an array", | |
| CONVERSATION_ID_WRONG_FORMAT: "Conversation ID is expected to be a string", | |
| PARTICIPANTS_AND_CONVERSATION_ID_UNDEFINED: "Participants or Conversation ID can't be undefined" | |
| } | |
| }, | |
| conversation: { | |
| errorMessages: { | |
| NO_PARTICIPANTS: "Cannot start, at least one participant is required", | |
| SEARCH_FAILED: "Search for Person failed", | |
| URI_NOT_VALID: "Uri not a string", | |
| SUCCESS_CALLBACK_ERROR: "Unexpected error in success callback" | |
| } | |
| }, | |
| modality: { | |
| errorMessages: { | |
| INVALID_MODALITIES: "Invalid modalities format provided", | |
| MODALITY_TYPE_NOT_SUPPORTED: "Modality type not supported", | |
| MODALITY_START_FAILED: "Modality cannot be started", | |
| ERROR_CALLBACK_ERROR: "Unexpected error in error callback" | |
| } | |
| }, | |
| auth: { | |
| errorTypes: { | |
| TOO_MANY_CONNECTIONS_ERROR: "TooManyConnectionsError", | |
| NOT_LINKED: "AccountNotLinkedError", | |
| AGE_RESTRICTION_ERROR: "underage" | |
| }, | |
| errorMessages: { | |
| AUTH_DISABLED: "authentication disabled", | |
| ALREADY_SIGNED_IN: "user already signed in", | |
| ALREADY_SIGNED_OUT: "user already signed out", | |
| NOT_LINKED: "not-linked" | |
| }, | |
| accountLinking: { | |
| WELCOME_FLOW: "welcome", | |
| RELINK_FLOW: "relink", | |
| INLINE_NEW_USER_FLOW: "inlineNewUser" | |
| }, | |
| authProviderType: { | |
| SKYPE_TOKEN: "skypeToken", | |
| IMPLICIT_AUTH: "implicitOAuth", | |
| PASSWORD: "password", | |
| ANONYMOUS: "anonymous" | |
| }, | |
| DEFAULT_SIGNIN_TIMEOUT: 15e3 | |
| } | |
| }, | |
| silentLogin: { | |
| errorMessages: { | |
| NOT_LINKED: "not_linked", | |
| TIMED_OUT: "timed_out", | |
| INVALID_GRANT: "invalid_grant" | |
| } | |
| }, | |
| conversation: { | |
| TOPIC_DELIMITER: ", ", | |
| NUMBER_OF_PARTICIPANT_NAMES_IN_TOPIC: 4 | |
| }, | |
| uiMode: { | |
| NARROW: "narrow" | |
| }, | |
| cache: { | |
| VERSION: "1.8", | |
| PREFIX_KEYWORD: "swx", | |
| INTERNAL_KEYS: { | |
| VERSION: "version", | |
| ENCRYPTION_KEY: "encryptionKey", | |
| KEYS_MAP: "keysMap" | |
| }, | |
| DEFAULT_BUFFER_TIMEOUT: 300 | |
| }, | |
| experience: { | |
| RENDERER_CLASS: "swx" | |
| }, | |
| disposableGroups: { | |
| PUB_SUB: "PUB_SUB", | |
| GENERIC_DISPOSABLE: "GENERIC_DISPOSABLE", | |
| INTERVAL: "INTERVAL", | |
| TIMEOUT: "TIMEOUT", | |
| DOM_EVENT: "DOM_EVENT" | |
| }, | |
| urlValidator: { | |
| ALLOW_EMPTY: {} | |
| }, | |
| i18n: { | |
| EMBEDDED_LOCALE: "en-us" | |
| }, | |
| mentions: { | |
| "class": "mention(?: me)?", | |
| meIdentifier: /class\s?=\s?["']mention me["']/ | |
| }, | |
| fileTransfer: { | |
| MAX_RESOLUTION: 16e3, | |
| MAX_FILE_SIZE: 104857600, | |
| SUPPORTED_PICTURE_TYPES: "image/x-png, image/png, image/jpeg", | |
| MAX_PHOTO_SIZE: 20971520 | |
| }, | |
| annotationType: { | |
| EMOTIONS: "emotions" | |
| }, | |
| emotionTypes: { | |
| HEART: "heart" | |
| }, | |
| textarea: { | |
| MAX_LENGTH: 2e3 | |
| }, | |
| urlPreviewType: { | |
| WWW: "urlp-www", | |
| YT: "utlp-yt", | |
| GIF: "urlp-gif" | |
| }, | |
| userSettings: { | |
| categories: { | |
| MESSAGING: "messaging", | |
| PRIVACY: "privacy", | |
| UNLISTED: "unlisted", | |
| CONTACTS: "contacts" | |
| }, | |
| preferences: { | |
| URL_PREVIEWS: "urlPreviews", | |
| YOUTUBE_PLAYER: "youTubePlayer", | |
| MENTIONS: "mentions", | |
| FILE_PASTE: "filePaste", | |
| SKYPE_CALL_POLICY_SUPPORT: "skypeCallPolicySupport", | |
| SKYPE_VIDEO_CALLING_POLICY_SUPPORT: "skypeVideoCallingPolicySupport", | |
| READ_RECEIPT: "readReceipt", | |
| AUTO_BUDDY: "autoBuddy", | |
| AUTO_BUDDY_DISCOVERY: "autoBuddyDiscovery", | |
| DYNAMIC_DISCOVERY: "dynamicDiscovery" | |
| } | |
| }, | |
| proofTypes: { | |
| EMAIL: "email", | |
| PHONE: "phone" | |
| }, | |
| shortCircuit: { | |
| scenarios: { | |
| ADD_VERIFIED_PHONE: "settingspnv", | |
| MANAGE_ADDRESSBOOKS: "settingsaddressbooks" | |
| } | |
| }, | |
| window: { | |
| BLANK_NAME: "_blank" | |
| }, | |
| educationBubbles: { | |
| ORIENTATION: { | |
| TOP: "TOP", | |
| BOTTOM: "BOTTOM", | |
| LEFT: "LEFT", | |
| RIGHT: "RIGHT" | |
| }, | |
| SIZE: { | |
| LARGE: "LARGE" | |
| } | |
| } | |
| }), | |
| define("cafe/enums", [], function() { | |
| var e = {}; | |
| return e.activityType = { | |
| ParticipantJoined: "ParticipantJoined", | |
| ParticipantLeft: "ParticipantLeft", | |
| ParticipantJoinFailed: "ParticipantJoinFailed", | |
| ParticipantRoleUpdate: "ParticipantRoleUpdate", | |
| ParticipantTopicUpdate: "ParticipantTopicUpdate", | |
| ParticipantPictureUpdate: "ParticipantPictureUpdate", | |
| ParticipantHistoryDisclosed: "ParticipantHistoryDisclosed", | |
| ParticipantJoiningEnabled: "ParticipantJoiningEnabled", | |
| ParticipantLegacyMemberAdded: "ParticipantLegacyMemberAdded", | |
| ParticipantLegacyMemberUpgraded: "ParticipantLegacyMemberUpgraded", | |
| CallStarted: "CallStarted", | |
| CallEnded: "CallEnded", | |
| CallMissed: "CallMissed", | |
| NgcUpgradeMessage: "NgcUpgradeMessage", | |
| PluginFreeFallbackWindowsUpdate: "PluginFreeFallbackWindowsUpdate", | |
| PluginFreeFallbackScreenSharing: "PluginFreeFallbackScreenSharing", | |
| PluginFreeFallbackMicrophoneAccess: "PluginFreeFallbackMicrophoneAccess", | |
| PluginFreeFallbackOutgoingP2PCall: "PluginFreeFallbackOutgoingP2PCall", | |
| PluginFreeFallbackIncomingP2PCall: "PluginFreeFallbackIncomingP2PCall", | |
| PstnInsufficientFunds: "InsufficientFunds", | |
| PstnInvalidNumber: "InvalidNumber", | |
| PstnForbiddenNumber: "ForbiddenNumber", | |
| TextMessage: "TextMessage", | |
| VideoMessage: "VideoMessage", | |
| PictureMessage: "PictureMessage", | |
| ContactRequestIncoming: "ContactRequestIncoming", | |
| ContactRequestIncomingInviteFree: "ContactRequestIncomingInviteFree", | |
| ContactRequestOutgoing: "ContactRequestOutgoing", | |
| ContactRequestOutgoingResend: "ContactRequestOutgoingResend", | |
| ContactRequestOutgoingAgent: "ContactRequestOutgoingAgent", | |
| ContactRequestIsNowContact: "ContactRequestIsNowContact", | |
| SuggestedContact: "SuggestedContact", | |
| UnblockContact: "UnblockContact", | |
| MojiMessage: "MojiMessage", | |
| FileTransfer: "FileTransfer", | |
| ContactInfoMessage: "ContactInfoMessage", | |
| CreditTransaction: "CreditTransaction", | |
| PollMessage: "PollMessage", | |
| SystemMessage: "SystemMessage", | |
| CustomMessage: "CustomMessage" | |
| }, | |
| e.activityStatus = { | |
| Pending: "Pending", | |
| Succeeded: "Succeeded", | |
| Failed: "Failed" | |
| }, | |
| e.transactionStatus = { | |
| Pending: "Pending", | |
| Succeeded: "Succeeded", | |
| Failed: "Failed" | |
| }, | |
| e.direction = { | |
| Incoming: "Incoming", | |
| Outgoing: "Outgoing" | |
| }, | |
| e.messageFormat = { | |
| Text: "Text", | |
| Html: "Html" | |
| }, | |
| e.messageType = { | |
| Text: "Text", | |
| Html: "Html" | |
| }, | |
| e.callConnectionState = { | |
| Disconnected: "Disconnected", | |
| Notified: "Notified", | |
| Connecting: "Connecting", | |
| Ringing: "Ringing", | |
| EarlyMedia: "EarlyMedia", | |
| Connected: "Connected", | |
| Disconnecting: "Disconnecting" | |
| }, | |
| e.callDisconnectionReason = { | |
| Terminated: "Terminated", | |
| FullSession: "FullSession", | |
| Busy: "Busy", | |
| Refused: "Refused", | |
| Missed: "Missed", | |
| Dropped: "Dropped", | |
| InvalidNumber: "InvalidNumber", | |
| ForbiddenNumber: "ForbiddenNumber", | |
| EmergencyCallDenied: "EmergencyCallDenied", | |
| VoiceMailFailed: "VoiceMailFailed", | |
| TransferFailed: "TransferFailed", | |
| InsufficientFunds: "InsufficientFunds", | |
| Failed: "Failed", | |
| MissingSpeaker: "MissingSpeaker", | |
| CallEscalated: "CallEscalated", | |
| OutOfBrowserCall: "OutOfBrowserCall", | |
| AutoCallFailed: "AutoCallFailed", | |
| AutoCallTimeout: "AutoCallTimeout", | |
| Canceled: "Canceled" | |
| }, | |
| e.ecsClientNames = { | |
| Skype: "Skype" | |
| }, | |
| e.deviceType = { | |
| Camera: "Camera", | |
| Microphone: "Microphone", | |
| Speaker: "Speaker" | |
| }, | |
| e.groupType = { | |
| Root: "Root", | |
| Custom: "Custom", | |
| Others: "Others", | |
| Favorites: "Favorites", | |
| Distribution: "Distribution", | |
| PrivacyRelationship: "PrivacyRelationship" | |
| }, | |
| e.groupPrivacyRelationshipLevel = { | |
| None: "None", | |
| Blocked: "Blocked", | |
| Colleagues: "Colleagues", | |
| Workgroup: "Workgroup", | |
| External: "External", | |
| FriendsAndFamily: "FriendsAndFamily" | |
| }, | |
| e.mediaStreamState = { | |
| Started: "Started", | |
| Active: "Active", | |
| Inactive: "Inactive", | |
| Stopped: "Stopped" | |
| }, | |
| e.mediaType = { | |
| Unknown: "Unknown", | |
| Video: "Video", | |
| Video_WMV: "Video_WMV", | |
| Video_MOV: "Video_MOV", | |
| Video_MP4: "Video_MP4", | |
| Picture: "Picture" | |
| }, | |
| e.mediaStatus = { | |
| Unknown: "Unknown", | |
| Pending: "Pending", | |
| Completed: "Completed", | |
| Failed: "Failed" | |
| }, | |
| e.participantRole = { | |
| Attendee: "Attendee", | |
| Leader: "Leader" | |
| }, | |
| e.participantState = { | |
| Disconnected: "Disconnected", | |
| Connecting: "Connecting", | |
| InLobby: "InLobby", | |
| Connected: "Connected", | |
| Disconnecting: "Disconnecting" | |
| }, | |
| e.onlineStatus = { | |
| Online: "Online", | |
| Offline: "Offline", | |
| Hidden: "Hidden", | |
| Busy: "Busy", | |
| Idle: "Idle", | |
| BeRightBack: "BeRightBack", | |
| Away: "Away", | |
| DoNotDisturb: "DoNotDisturb", | |
| Unknown: "Unknown", | |
| OnThePhone: "OnThePhone", | |
| OutForLunch: "OutForLunch" | |
| }, | |
| e.phoneType = { | |
| Home: "Home", | |
| Work: "Work", | |
| Cell: "Cell", | |
| Other: "Other" | |
| }, | |
| e.selfSettings = { | |
| autoBuddy: "autoBuddy", | |
| linkedMSA: "linkedMSA" | |
| }, | |
| e.emailType = { | |
| Personal: "Personal", | |
| Work: "Work", | |
| Other: "Other" | |
| }, | |
| e.locationType = { | |
| Home: "Home", | |
| Work: "Work", | |
| Other: "Other", | |
| Unknown: "Unknown" | |
| }, | |
| e.noteType = { | |
| Personal: "Personal", | |
| OutOfOffice: "OutOfOffice" | |
| }, | |
| e.endpointType = { | |
| Desktop: "Desktop", | |
| Mobile: "Mobile", | |
| Web: "Web", | |
| Unknown: "Unknown" | |
| }, | |
| e.reasonCode = { | |
| RequestFailed: "RequestFailed" | |
| }, | |
| e.sharedResourceType = { | |
| Desktop: "Desktop", | |
| Application: "Application", | |
| Window: "Window" | |
| }, | |
| e.searchScope = { | |
| Agent: "Agent", | |
| AddressBook: "AddressBook", | |
| SkypeDirectory: "SkypeDirectory", | |
| All: "All" | |
| }, | |
| e.loginState = { | |
| SignedOut: "SignedOut", | |
| SigningIn: "SigningIn", | |
| SignedIn: "SignedIn", | |
| SigningOut: "SigningOut" | |
| }, | |
| e.translatorServiceState = { | |
| NotReady: "NotReady", | |
| Authenticated: "Authenticated", | |
| Error: "Error" | |
| }, | |
| e.authType = { | |
| Password: "Password", | |
| Token: "Token", | |
| Passive: "Passive", | |
| ImplicitOAuth: "ImplicitOAuth", | |
| Guest: "Guest", | |
| Integrated: "Integrated", | |
| OutOfBrowser: "OutOfBrowser" | |
| }, | |
| e.callingNotSupportedReasons = { | |
| PluginNotInstalled: "PluginNotInstalled", | |
| PluginOutOfDate: "PluginOutOfDate", | |
| BrowserNotSupported: "BrowserNotSupported", | |
| PluginBlocked: "PluginBlocked", | |
| PluginAlreadyRunning: "PluginAlreadyRunning", | |
| OSNotSupported: "OSNotSupported", | |
| FeatureDisabled: "FeatureDisabled", | |
| TooManyParticipants: "TooManyParticipants", | |
| NotInConversation: "NotInConversation", | |
| CameraUnavailable: "CameraUnavailable" | |
| }, | |
| e.fileUploadState = { | |
| Uploading: "Uploading", | |
| FileMissing: "FileMissing", | |
| Failed: "Failed", | |
| FailedMalwareScan: "FailedMalwareScan", | |
| Cancelled: "Cancelled", | |
| Sent: "Sent" | |
| }, | |
| e.marketplaceSkuType = { | |
| Premium: "Premium", | |
| Skypein: "Skypein", | |
| Calling: "Calling", | |
| CallingLegacy: "CallingLegacy", | |
| StickerPack: "StickerPack" | |
| }, | |
| e.callTechnology = { | |
| None: "None", | |
| P2P: "P2P", | |
| NGC: "NGC" | |
| }, | |
| e.mediaConnectionType = { | |
| Unknown: "Unknown", | |
| PluginBasedP2P: "PluginBasedP2P", | |
| PluginBasedNGC: "PluginBasedNGC", | |
| Pluginless: "Pluginless" | |
| }, | |
| e.subscriptionType = { | |
| Plan: "plan", | |
| Package: "package" | |
| }, | |
| e.preferenceValueState = { | |
| Unknown: "Unknown", | |
| Unset: "Unset", | |
| Defined: "Defined", | |
| Saving: "Saving" | |
| }, | |
| e.skypeFlagsApiMappings = { | |
| URL_PREVIEWS: 11, | |
| YOUTUBE_PLAYER: 12, | |
| MENTIONS: 13, | |
| FILE_PASTE: 14, | |
| ALLOW_VIDEO_CALLS_FROM_CONTACTS_ONLY: 15, | |
| DONT_ALLOW_VIDEO_CALLS: 16 | |
| }, | |
| e.preferenceType = { | |
| Boolean: "Boolean", | |
| Number: "Number", | |
| String: "String", | |
| CallPolicy: "CallPolicy", | |
| VideoPolicy: "VideoPolicy", | |
| AutoBuddy: "AutoBuddy", | |
| AutoBuddyDiscovery: "AutoBuddyDiscovery", | |
| AutoBuddyDiscoveryEmail: "AutoBuddyDiscoveryEmail", | |
| AutoBuddyDiscoveryPhone: "AutoBuddyDiscoveryPhone" | |
| }, | |
| e.privacyPolicyValues = { | |
| Anyone: 0, | |
| ContactsOnly: 1, | |
| NoOne: 2 | |
| }, | |
| e | |
| }), | |
| define("cafe/applicationInstance", [], function() { | |
| function t(t) { | |
| e = t | |
| } | |
| function n() { | |
| if (!e) | |
| throw new Error("Instance does not exist yet!"); | |
| return e | |
| } | |
| var e; | |
| return { | |
| set: t, | |
| get: n | |
| } | |
| }), | |
| define("jSkype/client", [], function() { | |
| function t(t) { | |
| e = t | |
| } | |
| function n() { | |
| if (!e) | |
| throw new Error("Instance does not exist yet!"); | |
| return e | |
| } | |
| var e; | |
| return { | |
| set: t, | |
| get: n | |
| } | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("jcafe-property-model/lib/propertyModel", ["require", "exports"], e) | |
| }(function(e, t) { | |
| var n = null ; | |
| try { | |
| n = window | |
| } catch (r) {} | |
| !n && global && (global.window = global); | |
| var i = function() { | |
| function N(e, t) { | |
| return t = Y({ | |
| code: e | |
| }, t), | |
| Y(Error(this || e), t) | |
| } | |
| function C(e, t) { | |
| var n = e + " is not a " + t; | |
| return N.call(n, "WrongType", { | |
| value: e | |
| }) | |
| } | |
| function k(e, t, n) { | |
| var r = "`" + e + "` = " + t + " is not a " + n; | |
| return N.call(r, "WrongArgType", { | |
| arg: e, | |
| value: t | |
| }) | |
| } | |
| function L(e, t) { | |
| var n = e + " != " + t; | |
| return N.call(n, "DoesNotEqual", { | |
| lhs: e, | |
| rhs: t | |
| }) | |
| } | |
| function A(e, t) { | |
| var n = "`" + e + "` is invalid: " + t; | |
| return N.call(n, "InvalidArgument", { | |
| arg: e, | |
| reason: t | |
| }) | |
| } | |
| function O(e, t) { | |
| var n = "Invalid state: " + e + " (expected " + t + ")"; | |
| return N.call(n, "InvalidState", { | |
| actual: e, | |
| expected: t | |
| }) | |
| } | |
| function M(e, t) { | |
| var n = "the `" + e + "` property is missing"; | |
| return N.call(n, "KeyMissing", { | |
| key: e, | |
| object: t | |
| }) | |
| } | |
| function _(e) { | |
| return N("AlreadyExists", { | |
| item: e | |
| }) | |
| } | |
| function D(e) { | |
| return N("DoesNotExist", { | |
| item: e | |
| }) | |
| } | |
| function P(e) { | |
| return N("NotSupported", { | |
| reason: e | |
| }) | |
| } | |
| function H(e, t, n) { | |
| if (!e) { | |
| if (!E) | |
| debugger ;throw N(t || "AssertionFailed", n) | |
| } | |
| } | |
| function B(e, t, n) { | |
| if (!e) | |
| throw N(t || "RuntimeCheckFailed", n) | |
| } | |
| function j(e) { | |
| return E ? e : e + ":" + tt() | |
| } | |
| function F(e, t) { | |
| x.replacePrototype ? e.__proto__ ? e.__proto__ = t : Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : Y(e, t) : Y(e, t) | |
| } | |
| function I() { | |
| function r(e, t) { | |
| v(e, 0) | |
| } | |
| function i() { | |
| var n = w(); | |
| while (e.length) { | |
| var r = e.shift(); | |
| r(); | |
| var i = w() - n; | |
| if (i >= t || i < 0) | |
| return | |
| } | |
| } | |
| function s() { | |
| n = !0; | |
| try { | |
| i() | |
| } finally { | |
| n = !1, | |
| e.length && r(s, !1) | |
| } | |
| } | |
| function o() { | |
| if (n || e.length > 1) | |
| return; | |
| r(s, !0) | |
| } | |
| function u(t) { | |
| e.push(t), | |
| o() | |
| } | |
| var e = [] | |
| , t = 16 | |
| , n = !1; | |
| return u | |
| } | |
| function R(e) { | |
| var t = []; | |
| for (var n = 1; n < arguments.length; n++) | |
| t[n - 1] = arguments[n]; | |
| e = e.bind.apply(e, [this].concat(t)), | |
| E ? e() : q(e) | |
| } | |
| function U(e) { | |
| t(e >= 0); | |
| var n = o(e + " sec timeout", { | |
| cancel: function(e) { | |
| m(r), | |
| n.reject(e) | |
| } | |
| }) | |
| , r = v(function() { | |
| n.resolve() | |
| }, e * 1e3 | 0); | |
| return n.promise | |
| } | |
| function z(e) { | |
| return Wt(e)().then(function() { | |
| return Y(z(e), { | |
| locked: !0 | |
| }) | |
| }) | |
| } | |
| function W(e, n) { | |
| return t(St(n) && n > 0), | |
| e = Wt(e), | |
| z(function() { | |
| return e().then(V(U, n)) | |
| }) | |
| } | |
| function X(e, t, n) { | |
| return t in e ? e[t] : n | |
| } | |
| function V(e) { | |
| var t = []; | |
| for (var n = 1; n < arguments.length; n++) | |
| t[n - 1] = arguments[n]; | |
| var r = this; | |
| return e.bind ? e.bind.apply(e, [r].concat(t)) : function() { | |
| return e.apply(r, t.concat([].slice.call(arguments, 0))) | |
| } | |
| } | |
| function $(e, t) { | |
| var n; | |
| if (e.indexOf) | |
| return e.indexOf(t); | |
| for (n = 0; n < e.length; n++) | |
| if (e[n] == t) | |
| return n; | |
| return -1 | |
| } | |
| function J(e, t) { | |
| e.splice(t, 1) | |
| } | |
| function K(e, t, n) { | |
| e.splice(t, 0, n) | |
| } | |
| function Q(e) { | |
| var t; | |
| return Object.keys ? t = Object.keys(e) : (t = [], | |
| it(e, function(e, n) { | |
| t.push(n) | |
| })), | |
| t | |
| } | |
| function G(e, t) { | |
| for (var n in e) | |
| if (!t(e[n], n)) | |
| return !1; | |
| return !0 | |
| } | |
| function Y(e) { | |
| var t = []; | |
| for (var n = 1; n < arguments.length; n++) | |
| t[n - 1] = arguments[n]; | |
| var r, i, s, o = t[t.length - 1]; | |
| e = e || {}, | |
| o = Et(o) ? o : ""; | |
| for (i = 0; i < t.length; i++) { | |
| r = t[i] || {}; | |
| if (r !== o) | |
| for (s in r) | |
| if (o != "append" || !(s in e)) | |
| e[s] = r[s] | |
| } | |
| return e | |
| } | |
| function Z(e, n, r) { | |
| r === void 0 && (r = null ); | |
| var i, s = r || window, o = e.split("."); | |
| for (i = 0; i < o.length; i++) | |
| s = s[o[i]] || (s[o[i]] = {}); | |
| for (i in n) | |
| t(!(i in s), e + "." + i + " already exists"), | |
| s[i] = n[i]; | |
| return s | |
| } | |
| function et() { | |
| return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) { | |
| var t = y.random() * 16 | 0 | |
| , n = e == "x" ? t : t & 3 | 8; | |
| return n.toString(16) | |
| }) | |
| } | |
| function tt() { | |
| return y.random().toString(16).slice(2) | |
| } | |
| function nt(e, t, n, r) { | |
| try { | |
| Object.defineProperty(e, t, { | |
| value: n, | |
| enumerable: !1, | |
| writable: !r | |
| }) | |
| } catch (i) { | |
| e[t] = n | |
| } | |
| } | |
| function rt(e) { | |
| return e.trim ? e.trim() : e.replace(/^\s+|\s+$/gm, "") | |
| } | |
| function it(e, n) { | |
| t(bt(e) || yt(e)), | |
| t(xt(n)); | |
| var r, i, s; | |
| if (bt(e)) | |
| for (i = 0; i < e.length; ++i) | |
| n(e[i], i); | |
| else | |
| for (s in e) | |
| r = n(e[s], s), | |
| t(r === void 0) | |
| } | |
| function st(e, n) { | |
| t(bt(e) || yt(e)), | |
| t(xt(n)); | |
| var r; | |
| return bt(e) ? (r = [], | |
| it(e, function(e, t) { | |
| n(e, t) && r.push(e) | |
| })) : (r = {}, | |
| it(e, function(e, t) { | |
| n(e, t) && (r[t] = e) | |
| })), | |
| r | |
| } | |
| function ot(e) { | |
| t(yt(e)); | |
| var n = []; | |
| return it(e, function(e) { | |
| n.push(e) | |
| }), | |
| n | |
| } | |
| function ut(e) { | |
| return t(bt(e) || yt(e)), | |
| bt(e) ? e.length : Q(e).length | |
| } | |
| function at(e, n) { | |
| t(bt(e) || yt(e)), | |
| t(xt(n)); | |
| var r; | |
| if (bt(e)) { | |
| for (r = 0; r < e.length; ++r) | |
| if (n(e[r], r)) | |
| return !0 | |
| } else | |
| for (r in e) | |
| if (n(e[r], r)) | |
| return !0; | |
| return !1 | |
| } | |
| function ft(e, n) { | |
| t(bt(e) || yt(e)), | |
| t(xt(n)); | |
| var r, i = {}; | |
| if (bt(e)) { | |
| for (r = 0; r < e.length; ++r) | |
| if (n(e[r], r)) | |
| return e[r] | |
| } else | |
| for (r in e) | |
| if (n(e[r], r)) | |
| return i[r] = e[r], | |
| i; | |
| return null | |
| } | |
| function lt(e) { | |
| return Object.freeze ? Object.freeze(e) : e | |
| } | |
| function ct() { | |
| var e = {}, t, n; | |
| for (n = 0; n < arguments.length; n++) | |
| t = arguments[n], | |
| e[t] = t; | |
| return lt(e) | |
| } | |
| function ht() { | |
| var e, t; | |
| if (arguments.length == 1 && yt(arguments[0])) | |
| e = arguments[0]; | |
| else { | |
| e = {}; | |
| for (t = 0; t < arguments.length; t++) | |
| e[arguments[t]] = t | |
| } | |
| return lt(e) | |
| } | |
| function pt(e, t) { | |
| for (var n in e) | |
| if (e[n] == t) | |
| return n; | |
| return "" | |
| } | |
| function dt(e, t, n) { | |
| var r, i; | |
| if (bt(e)) { | |
| r = []; | |
| for (i = 0; i < e.length; i++) | |
| r.push(t.call(n, e[i], i, e)) | |
| } else if (yt(e)) { | |
| r = {}; | |
| for (i in e) | |
| r[i] = t.call(n, e[i], i, e) | |
| } | |
| return r | |
| } | |
| function vt(e, t, n) { | |
| var r, i = {}; | |
| e = e || {}, | |
| t = t || {}; | |
| for (r in t) | |
| if (!(r in e) || n != "append") | |
| i[r] = { | |
| value: t[r], | |
| writable: !0, | |
| enumerable: !0, | |
| configurable: !0 | |
| }; | |
| return Object.create(e, i) | |
| } | |
| function mt(e) { | |
| return e && JSON.parse(JSON.stringify(e)) | |
| } | |
| function gt(e) { | |
| return e && Object.prototype.toString.call(e) == "[object Object]" | |
| } | |
| function yt(e) { | |
| return gt(e) | |
| } | |
| function bt(e) { | |
| return Object.prototype.toString.call(e) == "[object Array]" | |
| } | |
| function wt(e, t) { | |
| if (!bt(e)) | |
| return !1; | |
| for (var n = 0; n < e.length; n++) | |
| if (!t(e[n])) | |
| return !1; | |
| return !0 | |
| } | |
| function Et(e) { | |
| return Object.prototype.toString.call(e) == "[object String]" | |
| } | |
| function St(e) { | |
| return Object.prototype.toString.call(e) == "[object Number]" | |
| } | |
| function xt(e) { | |
| return Object.prototype.toString.call(e) == "[object Function]" | |
| } | |
| function Tt(e) { | |
| return Object.prototype.toString.call(e) == "[object Boolean]" | |
| } | |
| function Nt(e) { | |
| return Et(e) && e.length > 0 | |
| } | |
| function Ct(e) { | |
| return e === null || e === undefined | |
| } | |
| function kt(e) { | |
| return St(e) && (e | 0) == e | |
| } | |
| function Lt(e, t) { | |
| return kt(e) && bt(t) && e >= 0 && e < t.length | |
| } | |
| function At(e, t, n) { | |
| return St(n) && n >= e && n <= t | |
| } | |
| function Ot(e) { | |
| return gt(e) && Nt(e.type) && Nt(e.url) | |
| } | |
| function Mt(e) { | |
| return yt(e) && "status" in e | |
| } | |
| function _t(e) { | |
| for (var t in e) | |
| if (e.hasOwnProperty(t)) | |
| return !1; | |
| return !0 | |
| } | |
| function Dt(e) { | |
| return e && e[S] | |
| } | |
| function Pt(e) { | |
| return e instanceof Jt | |
| } | |
| function Ht(e) { | |
| return e && e.constructor === p | |
| } | |
| function Bt(e) { | |
| return e && e.constructor === h | |
| } | |
| function jt(e) { | |
| return e && e.constructor === ln | |
| } | |
| function Ft(e, t) { | |
| var n, i = t.split("|"); | |
| for (n = 0; n < i.length; n++) | |
| if (i[n] in r.types && r.types[i[n]](e)) | |
| return !0; | |
| return !1 | |
| } | |
| function It(e) { | |
| return e && xt(e.then) | |
| } | |
| function qt(e, t) { | |
| var n, r = typeof e, i = typeof t; | |
| if (e === t) | |
| return !0; | |
| if (r !== i || r !== "object" && r !== "function") | |
| return !1; | |
| if (e === null || t === null ) | |
| return e === t; | |
| if (e instanceof g && t instanceof g) | |
| return +e == +t; | |
| for (n in e) | |
| if (!(n in t) || e[n] !== t[n]) | |
| return !1; | |
| for (n in t) | |
| if (!(n in e) || e[n] !== t[n]) | |
| return !1; | |
| return !0 | |
| } | |
| function Rt(e) { | |
| return e.replace(/[<>&;#/]/gm, function(e) { | |
| return "&#" + e.charCodeAt(0) + ";" | |
| }).replace(/\r\n|\n/gm, function() { | |
| return "<br>" | |
| }) | |
| } | |
| function Ut(e) { | |
| return a("<root>" + e + "</root>").text() | |
| } | |
| function zt(e) { | |
| return e.replace(/&(#?\w+);/gm, function(e, t) { | |
| return t.charAt(0) == "#" ? String.fromCharCode(+t.slice(1)) : i.entities[t] | |
| }) | |
| } | |
| function Wt(e, t) { | |
| var n = e[S] ? e : function() { | |
| try { | |
| return o.wait(e.apply(this, arguments), t) | |
| } catch (n) { | |
| return o().reject(n).promise | |
| } | |
| } | |
| ; | |
| return nt(n, S, !0), | |
| n | |
| } | |
| function Xt(e) { | |
| function i(e, n) { | |
| return t.on(e, n), | |
| xt(n) && n(this), | |
| new Vt(t,e) | |
| } | |
| var t = i, n, r = e || {}; | |
| return this instanceof s ? (n = this, | |
| Y(n, r), | |
| n._listeners = [], | |
| n._modes = [], | |
| n._locked = !1, | |
| n.observer = t, | |
| F(t, s.prototype.observer), | |
| t._event = n, | |
| n) : new s(e) | |
| } | |
| function Vt(e, t) { | |
| this.event = e, | |
| this.listener = t | |
| } | |
| function $t(e, t) { | |
| if (!(this instanceof o)) | |
| return new o(e,t); | |
| Et(e) || (t = e, | |
| e = void 0), | |
| t = t || {}; | |
| var n = this | |
| , r = {}; | |
| r.leafs = [], | |
| r.state = "pending", | |
| r.status = h({ | |
| value: e | |
| }), | |
| t.mode && (r.mode = t.mode), | |
| t.cancel && (r.fnCancel = t.cancel), | |
| r.promise = new o.Promise(n), | |
| Y(n, { | |
| _: r, | |
| status: r.status, | |
| promise: r.promise | |
| }) | |
| } | |
| function Jt(e) { | |
| var t = o(); | |
| try { | |
| e(function(e) { | |
| t.resolve(e) | |
| }, function(e) { | |
| t.reject(e) | |
| }, t.status) | |
| } catch (n) { | |
| t.promise.state() == "pending" && t.reject(n) | |
| } | |
| return t.promise | |
| } | |
| function Kt(e) { | |
| return vt(Kt.prototype, { | |
| exec: function(t, n) { | |
| var r = e(t, n || 0); | |
| return arguments.length == 2 ? r : !r || r.pos != t.length ? null : r.res | |
| } | |
| }) | |
| } | |
| function Qt(e) { | |
| return Kt(function(t, n) { | |
| if (t.slice(n, n + e.length) == e) | |
| return { | |
| res: e, | |
| pos: n + e.length | |
| } | |
| }) | |
| } | |
| function Gt(e) { | |
| return Kt(function(t, n) { | |
| var r = e.exec(t.slice(n)); | |
| if (r && r.index == 0) | |
| return { | |
| res: r[0], | |
| pos: n + r[0].length | |
| } | |
| }) | |
| } | |
| function Yt(e, t) { | |
| return Kt(function(n, r) { | |
| return e.exec(n, r) || { | |
| res: t, | |
| pos: r | |
| } | |
| }) | |
| } | |
| function Zt(e, t) { | |
| return Kt(function(n, r) { | |
| return !t.exec(n, r) && e.exec(n, r) | |
| }) | |
| } | |
| function en() { | |
| var e = []; | |
| for (var t = 0; t < arguments.length; t++) | |
| e[t - 0] = arguments[t]; | |
| return Kt(function(t, n) { | |
| var r, i, s = []; | |
| for (r = 0; r < e.length; r++) { | |
| i = e[r].exec(t, n); | |
| if (!i) | |
| return; | |
| s.push(i.res), | |
| n = i.pos | |
| } | |
| return { | |
| res: s, | |
| pos: n | |
| } | |
| }) | |
| } | |
| function tn() { | |
| var e = []; | |
| for (var t = 0; t < arguments.length; t++) | |
| e[t - 0] = arguments[t]; | |
| return Kt(function(t, n) { | |
| var r, i; | |
| for (r = 0; r < e.length && !i; r++) | |
| i = e[r].exec(t, n); | |
| return i | |
| }) | |
| } | |
| function nn(e) { | |
| return Kt(function(t, n) { | |
| var r, i = []; | |
| while (r = e.exec(t, n)) | |
| i.push(r.res), | |
| n = r.pos; | |
| return { | |
| res: i, | |
| pos: n | |
| } | |
| }) | |
| } | |
| function rn(e, t) { | |
| var n = en(t, e).select(1) | |
| , r = en(e, nn(n)).then(function(e) { | |
| return [e[0]].concat(e[1]) | |
| }); | |
| return Yt(r, []) | |
| } | |
| function sn(e, t) { | |
| var n = Gt(/\\./).then(function(e) { | |
| return e.slice(1) | |
| }) | |
| , r = tn(n, Zt(Gt(/./), t)); | |
| return en(e, nn(r), t).select(1).merge() | |
| } | |
| function on(e) { | |
| var t = u.pattern.exec(e); | |
| if (!t) | |
| throw new SyntaxError("Invalid data URL: " + e); | |
| return t.base64 = !!t.attributes.base64, | |
| t | |
| } | |
| function un(e) { | |
| if (!(Et(e) || e && e.ast)) | |
| throw new Error("Invalid argument: " + e); | |
| if (!(this instanceof a)) | |
| return new a(e); | |
| var t, n; | |
| try { | |
| t = e.ast || a.pattern.exec(e); | |
| if (!t) | |
| throw void 0 | |
| } catch (r) { | |
| throw n = new SyntaxError("Invalid XML: " + e), | |
| n.reason = r, | |
| n | |
| } | |
| var i = t.attrs || {} | |
| , s = (t.nodes || []).map(function(e) { | |
| return a({ | |
| ast: Et(e) ? { | |
| text: e | |
| } : e | |
| }) | |
| }) | |
| , o = function(e, t) { | |
| return e + t.text() | |
| } | |
| , u = function() { | |
| return t.name | |
| } | |
| , f = function() { | |
| return t.text || s.reduce(o, "") | |
| } | |
| ; | |
| this.attrs = i, | |
| this.nodes = s, | |
| this.name = u, | |
| this.text = f | |
| } | |
| function an(e) { | |
| return { | |
| root: a(rt(e.replace(/^<\?.+?\?>/, ""))) | |
| } | |
| } | |
| function fn(e) { | |
| var t = f.pattern.exec(e || ""); | |
| if (t) | |
| return t; | |
| throw new SyntaxError("Invalid WWW-Authenticate header:\n" + e) | |
| } | |
| function ln(e, t) { | |
| function r() { | |
| var t; | |
| if (!n.enabled()) { | |
| t = N("CommandDisabled", { | |
| reason: n.enabled.reason | |
| }); | |
| if (Dt(e)) | |
| return o().reject(t).promise; | |
| throw t | |
| } | |
| return e.apply(this, arguments) | |
| } | |
| function i() { | |
| return "[Command: enabled = " + n.enabled() + "]" | |
| } | |
| function s(e) { | |
| return ln(function() { | |
| return n.apply(e, arguments) | |
| }, n.enabled) | |
| } | |
| var n = r; | |
| return Y(n, { | |
| constructor: ln, | |
| enabled: t && t.asReadOnly(), | |
| bind: s, | |
| toString: i | |
| }) | |
| } | |
| function cn(e) { | |
| return Y(e, { | |
| constructor: ln, | |
| toString: function() { | |
| return "[Command: enabled = true]" | |
| }, | |
| enabled: mn(!0) | |
| }) | |
| } | |
| function hn(e) { | |
| return e !== void 0 ? ln(function() {}, mn(!1, e)) : (l.instance || (l.instance = ln(function() {}, mn(!1))), | |
| l.instance) | |
| } | |
| function pn(e) { | |
| return e !== void 0 ? ln(Wt(function() {}), mn(!1, e)) : (c.instance || (c.instance = ln(Wt(function() {}), mn(!1))), | |
| c.instance) | |
| } | |
| function dn(e, t) { | |
| var n = 0; | |
| return function() { | |
| var r = !1; | |
| return n++, | |
| n == 1 && e && e(), | |
| { | |
| dispose: function() { | |
| if (r) | |
| throw N("AlreadyDisposed"); | |
| r = !0, | |
| n--, | |
| n == 0 && t && t() | |
| } | |
| } | |
| } | |
| } | |
| function vn(e) { | |
| function s(e, n) { | |
| return arguments.length == 0 ? t._value : (t._write(e, n), | |
| this) | |
| } | |
| var t = s | |
| , n = e && e.get | |
| , r = e && e.set | |
| , i = e && e.readOnly; | |
| return e && e.value !== void 0 && (t._value = e.value), | |
| e && e.reason !== void 0 && (t.reason = e.reason), | |
| e && e.check && (t._check = e.check), | |
| n && (t._getter = Wt(n)), | |
| i && (t._ro = t), | |
| r && (t._setter = Wt(r, "sync")), | |
| e && e.subscribed && (t._subscribed = e.subscribed), | |
| e && e.unsubscribed && (t._unsubscribed = e.unsubscribed), | |
| F(t, h.prototype), | |
| Y(t, { | |
| get: jt(n) ? ln(t._getAsync, n.enabled) : cn(t._getAsync), | |
| set: i ? c() : jt(r) ? ln(t._setAsync, r.enabled) : cn(t._setAsync) | |
| }), | |
| Object.defineProperty(t, "changed", { | |
| get: t._getChanged, | |
| set: function(e) { | |
| t._getChanged(), | |
| t._changed.observer = e | |
| } | |
| }), | |
| t | |
| } | |
| function mn(e, t) { | |
| if (t === void 0) { | |
| if (e === null ) | |
| return h.null; | |
| if (e === !0) | |
| return h.true; | |
| if (e === !1) | |
| return h.false | |
| } | |
| return h({ | |
| value: e, | |
| reason: t, | |
| readOnly: !0 | |
| }) | |
| } | |
| function gn(e, t) { | |
| var n = h(); | |
| return n(e, t), | |
| n.inc = function() { | |
| n(n() + 1) | |
| } | |
| , | |
| n.dec = function() { | |
| n(n() - 1) | |
| } | |
| , | |
| n | |
| } | |
| function yn(e, t) { | |
| var n = h(); | |
| return n(e, t), | |
| n | |
| } | |
| function bn(e) { | |
| function r(e) { | |
| return arguments.length == 0 ? t._asArray() : bt(e) ? (t.empty(), | |
| t._addArray(e), | |
| this) : t._getFromCache(e) | |
| } | |
| var t = r | |
| , n = t._ = Y({}, e); | |
| return e && e.get && (n.get = Wt(e.get)), | |
| n.vals = [], | |
| n.keys = [], | |
| n.idxs = {}, | |
| F(t, p.prototype), | |
| t._init(), | |
| t | |
| } | |
| function wn(e) { | |
| function f(n, r) { | |
| t(!s[n]), | |
| t(n > e), | |
| t(xt(r)), | |
| s[n] = Wt(r) | |
| } | |
| function l(e) { | |
| n(e >= i(), "InvalidTargetState", { | |
| currentTarget: i(), | |
| requestedTarget: e | |
| }); | |
| if (e == r()) | |
| return; | |
| return e > i() && (u = o("advancing to target state " + e, { | |
| cancel: c | |
| }), | |
| i.set(e), | |
| p(u)), | |
| u.promise | |
| } | |
| function c(e) { | |
| a.cancel(e), | |
| a = null | |
| } | |
| function p(e) { | |
| if (a) | |
| return; | |
| var t = r() + 1; | |
| e.status("advancing to state " + t), | |
| a = s[t].call(null ), | |
| a.then(function(n) { | |
| a = null , | |
| r.set(t), | |
| r() < i() ? p(e) : e.resolve(n) | |
| }, function(t) { | |
| a = null , | |
| e.reject(t) | |
| }) | |
| } | |
| var r = h({ | |
| value: e | |
| }), i = h({ | |
| value: e | |
| }), s = {}, u, a; | |
| return { | |
| defineState: f, | |
| advanceTo: Wt(l), | |
| state: r.asReadOnly(), | |
| target: i.asReadOnly() | |
| } | |
| } | |
| function En(e, n) { | |
| function l() { | |
| t(r <= n); | |
| while (r < n && i.length > 0) | |
| c() | |
| } | |
| function c() { | |
| var t = i.splice(0, 1)[0] | |
| , n = u[t] | |
| , o = s[t]; | |
| delete u[t], | |
| delete s[t], | |
| a.splice(0, 1), | |
| r++, | |
| f[t] = e(n), | |
| f[t].then(function(e) { | |
| o.resolve(e) | |
| }, function(e) { | |
| o.reject(e) | |
| }, o.status).then(function() { | |
| r--, | |
| delete f[t], | |
| l() | |
| }) | |
| } | |
| function h(e, t) { | |
| var n = a.length; | |
| while (n > 0 && t > a[n - 1]) | |
| n--; | |
| a.splice(n, 0, t), | |
| i.splice(n, 0, e) | |
| } | |
| function p(e, t) { | |
| var n; | |
| if (f[e]) | |
| f[e].cancel(t); | |
| else { | |
| s[e].reject(t), | |
| delete u[e], | |
| delete s[e]; | |
| for (n = 0; n < i.length; n++) | |
| if (i[n] == e) { | |
| i.splice(n, 1), | |
| a.splice(n, 1); | |
| break | |
| } | |
| } | |
| } | |
| t(xt(e)), | |
| t(n > 0), | |
| e = Wt(e); | |
| var r = 0 | |
| , i = [] | |
| , s = {} | |
| , u = {} | |
| , a = [] | |
| , f = {}; | |
| return function(e, t) { | |
| var n = tt() | |
| , r = o("Waiting in the throttling queue.", { | |
| cancel: V(p, n) | |
| }); | |
| return s[n] = r, | |
| u[n] = e, | |
| h(n, t), | |
| l(), | |
| r.promise | |
| } | |
| } | |
| function Sn(e) { | |
| t(xt(e)); | |
| var n = null ; | |
| return function() { | |
| return n || (n = e()) | |
| } | |
| } | |
| function xn(e, n) { | |
| function s(e, n, i) { | |
| t(St(e)), | |
| t(i instanceof o); | |
| var s = 0; | |
| while (s < r.length && e > r[s].priority) | |
| s++; | |
| r.splice(s, 0, { | |
| priority: e, | |
| request: n, | |
| task: i | |
| }) | |
| } | |
| function u(e) { | |
| t(e > 0), | |
| t(r.length > 0); | |
| var n, i = [], s = []; | |
| for (n = r.length - 1; n >= 0 && i.length < e; n--) | |
| i.push(r[n].request), | |
| s.push(r[n].task); | |
| return r.splice(n + 1, e), | |
| { | |
| requests: i, | |
| tasks: s | |
| } | |
| } | |
| function a(e, t) { | |
| var n; | |
| for (n = 0; n < r.length; n++) | |
| if (r[n].task === e) | |
| break; | |
| n < r.length ? (r.splice(n, 1), | |
| e.reject(t)) : (e.cancelled = !0, | |
| e.reject(t)) | |
| } | |
| function f() { | |
| function r(e) { | |
| it(t.tasks, function(t, n) { | |
| t.cancelled || e(t, n) | |
| }) | |
| } | |
| var t = u(n); | |
| o.wait(e(t.requests)).then(function(e) { | |
| r(function(t, n) { | |
| var r = bt(e) ? e[n] : e; | |
| o.wait(r).then(function(e) { | |
| t.resolve(e) | |
| }, function(e) { | |
| t.reject(e) | |
| }, t.status) | |
| }) | |
| }, function(e) { | |
| r(function(t) { | |
| t.reject(e) | |
| }) | |
| }, function(e) { | |
| r(function(t) { | |
| t.status(e) | |
| }) | |
| }) | |
| } | |
| t(n > 0); | |
| var r = [], i; | |
| return function(e, t) { | |
| var n = o("Waiting in the batching queue.", { | |
| cancel: function(e) { | |
| a(n, e) | |
| } | |
| }); | |
| return i || (i = v(function() { | |
| i = null ; | |
| while (r.length > 0) | |
| f() | |
| }, 0)), | |
| s(t, e, n), | |
| n.promise | |
| } | |
| } | |
| function Cn(e) { | |
| function n(e) { | |
| t(Et(e)); | |
| var n = e.split("\r\n"), r, i, o, u; | |
| for (var a = 0; a < n.length; a++) | |
| if (u = rt(n[a])) | |
| r = u.indexOf(":"), | |
| r >= 0 && (i = rt(u.substr(0, r)), | |
| o = rt(u.substr(r + 1)), | |
| s(i, o)) | |
| } | |
| function r(e) { | |
| t(yt(e)); | |
| for (var n in e) | |
| s(n, e[n] + "") | |
| } | |
| function i(e) { | |
| return t(Nt(e)), | |
| u[e.toLowerCase()] | |
| } | |
| function s(e, n) { | |
| t(Nt(e)), | |
| t(Nt(n)), | |
| e = e.toLowerCase(), | |
| u[e] ? u[e] += "\n" + n : u[e] = n | |
| } | |
| function o() { | |
| var e, t, n, r = ""; | |
| for (t in u) { | |
| n = u[t].split("\n"); | |
| for (e = 0; e < n.length; e++) | |
| n[e] && (r += t + ": " + n[e] + "\r\n") | |
| } | |
| return r + "\r\n" | |
| } | |
| var u = {}; | |
| return Nt(e) ? n(e) : yt(e) && r(e), | |
| { | |
| get: i, | |
| add: s, | |
| toString: o | |
| } | |
| } | |
| function kn(e) { | |
| var t = u("data:" + e.replace(/\s/g, "") + ","); | |
| return { | |
| mimeType: t.mime, | |
| attributes: t.attributes | |
| } | |
| } | |
| function Ln(e) { | |
| if (!e) | |
| return e; | |
| var t = /\d+/.exec(e); | |
| return new g(t && +t[0]) | |
| } | |
| function An(e) { | |
| return e ? "/Date(" + +e + ")/" : e | |
| } | |
| function On(e, t) { | |
| function n(e, t) { | |
| for (var n = 0; n < e.length; n++) | |
| if ($(t, e[n]) < 0) | |
| return !1; | |
| return !0 | |
| } | |
| return n(e, t) && n(t, e) | |
| } | |
| var e = this | |
| , t = H | |
| , n = B | |
| , r = Ft | |
| , i = zt | |
| , s = Xt | |
| , o = $t | |
| , u = on | |
| , a = un | |
| , f = fn | |
| , l = hn | |
| , c = pn | |
| , h = vn | |
| , p = bn | |
| , d = window.ttt ? ttt.window : window | |
| , v = d.setTimeout | |
| , m = d.clearTimeout | |
| , g = d.Date | |
| , y = d.Math | |
| , b = d.console | |
| , w = d.performance && d.performance.now ? function() { | |
| return performance.now() | |
| } | |
| : function() { | |
| return g.now() | |
| } | |
| ; | |
| d = null ; | |
| var E = typeof SkypeWebTests != "undefined" | |
| , S = j("async") | |
| , x = Z("Skype.Web.Utils", { | |
| replacePrototype: !0 | |
| }) | |
| , T = { | |
| log: function() { | |
| if (!E) | |
| try { | |
| b.log.apply(b, arguments) | |
| } catch (e) {} | |
| } | |
| }; | |
| t.is = function(e, n) { | |
| if (n instanceof RegExp) | |
| t(n.test(e), "DoesNotMatchPattern", { | |
| value: e, | |
| pattern: n | |
| }); | |
| else if (n && !r(e, n)) { | |
| debugger ;throw C(e, n) | |
| } | |
| } | |
| , | |
| t.args = function(e, t) { | |
| it(t, function(t, n) { | |
| var i = e && e[n]; | |
| if (!r(i, t)) { | |
| debugger ;throw k(n, i, t) | |
| } | |
| }) | |
| } | |
| , | |
| n.equals = function(e, t) { | |
| if (e != t) | |
| throw L(e, t) | |
| } | |
| , | |
| n.state = function(e, t) { | |
| if (bt(t)) { | |
| if ($(t, e) == -1) | |
| throw O(e, t) | |
| } else if (e != t) | |
| throw O(e, t) | |
| } | |
| , | |
| n.belongs = function(e, t) { | |
| if (!(e in t)) | |
| throw M(e, t) | |
| } | |
| ; | |
| var q = I(); | |
| r.types = { | |
| String: Et, | |
| NotEmptyString: Nt, | |
| Function: xt, | |
| Dictionary: yt, | |
| Object: gt, | |
| Array: bt, | |
| Boolean: Tt, | |
| Void: Ct, | |
| Number: St | |
| }, | |
| i.entities = { | |
| lt: "<", | |
| gt: ">", | |
| amp: "&", | |
| nbsp: "ย ", | |
| quot: '"' | |
| }, | |
| Y(Vt.prototype, { | |
| dispose: function() { | |
| this.event.off(this.listener) | |
| } | |
| }), | |
| s.prototype = function() {} | |
| , | |
| Y(s.prototype, { | |
| constructor: s, | |
| fire: function() { | |
| var e = this; | |
| if (e._enqueue(e, e._fire, arguments)) | |
| return; | |
| e._fire.apply(e, arguments), | |
| e._dequeue() | |
| }, | |
| _fire: function() { | |
| var e, t = this; | |
| for (e = 0; e < t._listeners.length; e++) | |
| t._invoke(t._listeners[e], arguments, t._modes[e]) | |
| }, | |
| _invoke: function(e, t, n) { | |
| var r = this; | |
| if (n == "async" && !E) | |
| R.call(r, r.invoke, e, t, "sync"); | |
| else | |
| try { | |
| e.apply(null , t) | |
| } catch (i) { | |
| if (i !== r._ie) { | |
| b && b.log; | |
| debugger | |
| } | |
| } | |
| }, | |
| _enqueue: function(e, t, n) { | |
| var r = this; | |
| return r._locked ? (r._queue = r._queue || [], | |
| r._queue.push([e, t, n])) : r._locked = !0, | |
| r._queue && r._queue.length > 0 | |
| }, | |
| _dequeue: function() { | |
| var e, t = this; | |
| if (t._queue) { | |
| while (e = t._queue.shift()) | |
| e[1].apply(e[0], e[2]); | |
| t._queue = null | |
| } | |
| t._locked = !1 | |
| }, | |
| observed: function() { | |
| return this._listeners.length > 0 | |
| }, | |
| observer: { | |
| toString: function() { | |
| var e = this._event._listeners.length; | |
| return "[Event" + (e ? ": " + e + " listener" + (e == 1 ? "" : "s") : "") + "]" | |
| }, | |
| on: function(e, t) { | |
| var n = this._event; | |
| if (n._enqueue(this, this._addListener, [e, t])) | |
| return; | |
| this._addListener(e, t), | |
| n._dequeue() | |
| }, | |
| _addListener: function(e, n) { | |
| var r = this._event; | |
| t(xt(e)), | |
| r.adding && r.adding.call(r.context, e), | |
| r._listeners.push(e), | |
| r._modes.push(n), | |
| r.added && r.added.call(r.context, e), | |
| r._listeners.length == 1 && r.subscribed && r.subscribed.call(r.context) | |
| }, | |
| off: function(e) { | |
| var t = this._event; | |
| if (t._enqueue(this, this._removeListener, [e])) | |
| return; | |
| this._removeListener(e), | |
| t._dequeue() | |
| }, | |
| _removeListener: function(e) { | |
| var t = this._event | |
| , n = $(t._listeners, e); | |
| n >= 0 && (t._listeners.splice(n, 1), | |
| t._modes.splice(n, 1), | |
| t._listeners.length == 0 && t.unsubscribed && t.unsubscribed.call(t.context)) | |
| } | |
| } | |
| }), | |
| Y(o.prototype, { | |
| resolve: function(e) { | |
| var t = this | |
| , r = t._; | |
| return n.state(r.state, "pending"), | |
| r.value = e, | |
| r.state = "resolved", | |
| r.$state && r.$state._set(r.state), | |
| r.promise.result = e, | |
| t._complete() | |
| }, | |
| reject: function(e) { | |
| var t = this | |
| , r = t._; | |
| return n.state(r.state, "pending"), | |
| r.value = e, | |
| r.state = "rejected", | |
| r.$state && r.$state._set(r.state), | |
| r.promise.error = e, | |
| t._complete() | |
| }, | |
| _complete: function() { | |
| var e = this | |
| , t = e._; | |
| t.status(null ); | |
| for (var n = 0; n < t.leafs.length; n++) | |
| t.leafs[n](); | |
| return t.fnCancel = null , | |
| e | |
| } | |
| }), | |
| o.Promise = function(e) { | |
| this.task = e, | |
| Object.defineProperty(this, "state", { | |
| get: this._getState | |
| }), | |
| Object.defineProperty(this, "status", { | |
| get: this._getStatus | |
| }) | |
| } | |
| , | |
| o.Promise.prototype = vt(Jt.prototype, { | |
| _getState: function() { | |
| var e = this.task._; | |
| return e.$state || (e.$state = h({ | |
| value: e.state, | |
| readOnly: !0 | |
| })), | |
| e.$state | |
| }, | |
| _getStatus: function() { | |
| var e = this.task._; | |
| return e.status.asReadOnly() | |
| }, | |
| from: function(e) { | |
| var t = this.task | |
| , n = t._; | |
| this.locked ? this.target.from(e) : (n.source = e, | |
| n.source.then(function(e) { | |
| t.resolve(e) | |
| }, function(e) { | |
| t.reject(e) | |
| }, n.status), | |
| n.fnCancel = function(e) { | |
| n.source.cancel(e) | |
| } | |
| , | |
| n.source.locked && (n.source.target = this)) | |
| }, | |
| cancel: function(e) { | |
| var t = this.task | |
| , r = t._; | |
| n.state(r.state, "pending"), | |
| r.fnCancel ? r.fnCancel(e) : t.reject(e) | |
| }, | |
| then: function(e, t, n) { | |
| function f() { | |
| i.status.changed.off(l); | |
| try { | |
| if (i.state == "resolved") | |
| s = xt(e) ? e(i.value) : i.value; | |
| else { | |
| if (!xt(t)) { | |
| u.reject(i.value); | |
| return | |
| } | |
| s = t(i.value) | |
| } | |
| } catch (n) { | |
| u.reject(n); | |
| return | |
| } | |
| It(s) ? u.promise.from(o.wait(s)) : u.resolve(s) | |
| } | |
| function l(e, t) { | |
| i.state == "pending" && (u.status(e, t), | |
| xt(n) && n(e, t)) | |
| } | |
| function c(e) { | |
| if (i.leafs.length < 2) | |
| i.promise.cancel(e); | |
| else { | |
| J(i.leafs, $(i.leafs, a)), | |
| i.status.changed.off(l); | |
| try { | |
| xt(t) ? u.promise.from(o.wait(t(e))) : u.reject(e) | |
| } catch (n) { | |
| u.reject(n) | |
| } | |
| } | |
| } | |
| var r = this.task, i = r._, s, u = o({ | |
| cancel: c | |
| }), a = i.mode == "sync" ? f : V(R, f); | |
| return i.state == "pending" ? (i.status.changed(l), | |
| i.leafs.push(a)) : a(), | |
| u.promise | |
| } | |
| }), | |
| o.waitAny = function(e) { | |
| function i(t) { | |
| it(e, function(e) { | |
| try { | |
| e.cancel(t) | |
| } catch (n) {} | |
| }) | |
| } | |
| var t = e.length | |
| , n = o({ | |
| cancel: i | |
| }) | |
| , r = n.promise; | |
| return t == 1 ? r = o.wait(e[0]) : t == 0 ? n.reject(Error()) : it(e, function(r) { | |
| r.then(function(e) { | |
| t--, | |
| n && (n.resolve(e), | |
| n = null , | |
| i(N("CompetingTaskResolved"))) | |
| }, function(e) { | |
| t--, | |
| t || (n.reject(e), | |
| n = null ) | |
| }, function() { | |
| var t = dt(e, function(e, t) { | |
| return e.status() || "#" + t | |
| }); | |
| n.status(t.join(" || ")) | |
| }) | |
| }), | |
| r | |
| } | |
| , | |
| o.waitAll = function(e) { | |
| function u(t) { | |
| for (var n = 0; n < e.length; n++) | |
| try { | |
| e[n].state() == "pending" && e[n].cancel(t) | |
| } catch (r) { | |
| debugger | |
| } | |
| } | |
| function a() { | |
| var e = dt(s, function(e, t) { | |
| return e.status() || "#" + t | |
| }); | |
| r.status(ot(e).join(" && ")) | |
| } | |
| var t = e.length | |
| , n = [] | |
| , r = o({ | |
| cancel: u | |
| }) | |
| , i = r.promise | |
| , s = {}; | |
| return n.length = e.length, | |
| t == 0 ? r.resolve([]) : t == 1 ? i = o.wait(e[0]).then(function(e) { | |
| return [e] | |
| }) : (it(e, function(t, n) { | |
| s[n] = e[n] = o.wait(t) | |
| }), | |
| a(), | |
| it(e, function(e, i) { | |
| e.then(function(e) { | |
| n[i] = e, | |
| delete s[i], | |
| a(), | |
| t--, | |
| t || (r.resolve(n), | |
| r = null ) | |
| }, function(e) { | |
| delete s[i], | |
| t--, | |
| r && (r.reject(e), | |
| r = null , | |
| u(e)) | |
| }, a) | |
| })), | |
| i | |
| } | |
| , | |
| o.wait = function(e, t) { | |
| return Pt(e) ? e : It(e) ? Jt(V.call(e, e.then)) : o({ | |
| mode: t | |
| }).resolve(e).promise | |
| } | |
| , | |
| Y(Jt.prototype, { | |
| "catch": function(e) { | |
| return this.then(null , e || function() {} | |
| ) | |
| }, | |
| "finally": function(e) { | |
| return this.then(function(t) { | |
| return o.wait(e()).then(function() { | |
| return t | |
| }) | |
| }, function(t) { | |
| return o.wait(e()).then(function() { | |
| throw t | |
| }) | |
| }) | |
| } | |
| }), | |
| Y(Kt.prototype, { | |
| then: function(e) { | |
| var t = this.exec; | |
| return Kt(function(n, r) { | |
| var i = t(n, r); | |
| return i && { | |
| res: e(i.res), | |
| pos: i.pos | |
| } | |
| }) | |
| }, | |
| select: function(e) { | |
| return this.then(function(t) { | |
| return t[e] | |
| }) | |
| }, | |
| merge: function(e) { | |
| return this.then(function(t) { | |
| return t.join(e || "") | |
| }) | |
| }, | |
| join: function(e, t) { | |
| return this.then(function(n) { | |
| var r, i = {}; | |
| for (r = 0; r < n.length; r++) | |
| i[n[r][e]] = n[r][t]; | |
| return i | |
| }) | |
| }, | |
| as: function(e) { | |
| return this.then(function(t) { | |
| var n, r = {}; | |
| for (n in e) | |
| r[n] = t[e[n]]; | |
| return r | |
| }) | |
| } | |
| }), | |
| u.encodeData = function(e) { | |
| return encodeURIComponent(e).replace(/%20/gm, "+") | |
| } | |
| , | |
| u.decodeData = function(e) { | |
| return decodeURIComponent(e.replace(/\+/gm, " ")) | |
| } | |
| , | |
| u.pattern = function() { | |
| var e = Gt(/[^()<>@,;:\\\x22/\[\]?=\s]+/) | |
| , t = en(e, Qt("/"), e).merge() | |
| , n = Gt(/[^\uffff]*/).then(u.decodeData) | |
| , r = sn(Qt('"'), Qt('"')) | |
| , i = en(Gt(/\s*=\s*/), tn(r, e)).select(1) | |
| , s = en(Gt(/\s*;\s*/), e, Yt(i, !0)); | |
| return en(Qt("data:"), Yt(t), nn(s).join(1, 2), Gt(/\s*,\s*/), n).as({ | |
| mime: 1, | |
| attributes: 2, | |
| data: 4 | |
| }) | |
| }(), | |
| a.prototype.toString = function() { | |
| return "[object XmlNode]" | |
| } | |
| , | |
| a.prototype.attr = function(e) { | |
| return t(e in this.attrs, "Attribute does not exist: " + this.name() + "." + e), | |
| this.attrs[e] | |
| } | |
| , | |
| a.prototype.selectOne = function(e, n) { | |
| var r = st(this.nodes, xt(e) ? e : function(t) { | |
| var r, i; | |
| if (n) | |
| for (r in n) { | |
| i = r.toLowerCase(); | |
| if (n[i] != t.attrs[i]) | |
| return !1 | |
| } | |
| return t.name() == e.toLowerCase() | |
| } | |
| ); | |
| return t(r.length == 1, "Single node expected: " + e), | |
| r[0] | |
| } | |
| , | |
| a.pattern = function() { | |
| var e, t = Gt(/[\x00-\x20]*/), n = Gt(/\x22[^\x22]*\x22/).then(function(e) { | |
| return e.slice(1, -1) | |
| }), r = Gt(/[^\s<>\x22]+/), s = tn(n, r).then(i), o = Gt(/[^<]+/m).then(i), u = Gt(/[\w\d:-]+/).then(function(e) { | |
| return e.toLowerCase() | |
| }), a = en(u, Yt(en(t, Qt("="), t, s).select(3))), f = rn(a, t).join(0, 1), l = en(Qt("<"), t, u, t, f, t, Qt(">")).as({ | |
| name: 2, | |
| attrs: 4 | |
| }), c = en(Qt("<"), t, u, t, f, t, Qt("/>")).as({ | |
| name: 2, | |
| attrs: 4 | |
| }), h = en(Qt("</"), t, u, t, Qt(">")).select(2), p = Kt(function(t, n) { | |
| return e.exec(t, n) | |
| }), d = en(l, nn(tn(p, o)), h).then(function(e) { | |
| if (e[0].name == e[2]) | |
| return { | |
| name: e[2], | |
| nodes: e[1], | |
| attrs: e[0].attrs | |
| }; | |
| throw new SyntaxError("</" + e[2] + "> does not match <" + e[0].name + ">") | |
| }); | |
| return e = tn(d, c) | |
| }(), | |
| f.pattern = function() { | |
| var e = Gt(/[\s,]*/) | |
| , t = Gt(/[^\s,=]+/) | |
| , n = sn(Qt('"'), Qt('"')) | |
| , r = en(t, Gt(/\s*=\s*/), n) | |
| , i = rn(r, e).join(0, 2) | |
| , s = en(t, e, i); | |
| return rn(s, e).join(0, 2) | |
| }(), | |
| h.sUpdated = {}, | |
| h.prototype = function() {} | |
| , | |
| Y(h.prototype, { | |
| constructor: h, | |
| toString: function() { | |
| return "[Property: value = " + this() + "]" | |
| }, | |
| map: function(e) { | |
| var t = this, n, r = h({ | |
| get: ln(function() { | |
| return t.get().then(e) | |
| }, t.get.enabled), | |
| subscribed: function() { | |
| n = t.subscribe() | |
| }, | |
| unsubscribed: function() { | |
| n.dispose() | |
| } | |
| }); | |
| return t.changed(function(t, n) { | |
| r(e(t), n) | |
| }), | |
| r.asReadOnly() | |
| }, | |
| when: function(e, t) { | |
| function s(e, n, s) { | |
| i(e) && t.call(r, n, s) | |
| } | |
| var n = this.changed | |
| , r = { | |
| dispose: function() { | |
| n.off(s) | |
| } | |
| } | |
| , i = xt(e) ? e : function(t) { | |
| return t === e | |
| } | |
| ; | |
| return n(s), | |
| r | |
| }, | |
| once: function(e, t) { | |
| return this.when(e, function() { | |
| this.dispose(), | |
| t.apply(null , arguments) | |
| }) | |
| }, | |
| equals: function(e) { | |
| return this.map(function(t) { | |
| return t == e | |
| }) | |
| }, | |
| equalsAny: function() { | |
| var e = [].slice.call(arguments); | |
| return this.map(function(t) { | |
| return at(e, function(e) { | |
| return e == t | |
| }) | |
| }) | |
| }, | |
| fork: function(e) { | |
| var t = this, n, r = e.enabled || mn(!0), i = r === mn(!1), s = h({ | |
| value: t(), | |
| reason: t.reason, | |
| readOnly: i, | |
| set: !i && ln(function(n, r) { | |
| return Wt(e)(n, r).then(function(e) { | |
| return t.set(e, r) | |
| }) | |
| }, r), | |
| get: t.get.bind(t), | |
| subscribed: function() { | |
| n = t.subscribe() | |
| }, | |
| unsubscribed: function() { | |
| n.dispose() | |
| } | |
| }); | |
| return (t._forks = t._forks || []).push(s), | |
| s | |
| }, | |
| asReadOnly: function() { | |
| var e = this; | |
| return e._ro || (e._ro = e.fork(c())), | |
| e._ro | |
| }, | |
| observed: function() { | |
| var e = this | |
| , t = e._changed; | |
| return t && t.observed() | |
| }, | |
| subscribe: function() { | |
| var e = this; | |
| return e.subscribe = dn(e._subscribed, e._unsubscribed), | |
| e.subscribe() | |
| } | |
| }), | |
| Y(h.prototype, { | |
| _set: function(e, t) { | |
| var n = this, r = n._value, i, s = n._forks, o = n._changed; | |
| if (!qt(e, r) || !qt(t, n.reason)) { | |
| n._value = e, | |
| n.reason = t, | |
| o && o.fire(e, t, r); | |
| if (s) | |
| for (i = 0; i < s.length; i++) | |
| s[i]._set(e, t) | |
| } | |
| return e | |
| }, | |
| _getChanged: function() { | |
| var e = this; | |
| return e._changed || (e._changed = new s({ | |
| context: e, | |
| added: e._listenerAdded | |
| })), | |
| e._changed.observer | |
| }, | |
| _listenerAdded: function(e) { | |
| var t = this | |
| , n = t._value | |
| , r = t.reason; | |
| n !== void 0 && e(n, r) | |
| }, | |
| _getAsync: Wt(function() { | |
| var e = this | |
| , t = e._getter | |
| , n = e._value; | |
| return t ? t.call(e, n, e.reason).then(function(t) { | |
| return e._set(t, e.reason), | |
| e._value | |
| }) : n | |
| }), | |
| _setAsync: Wt(function(e, n) { | |
| var r = this | |
| , i = r._check | |
| , s = r._setter; | |
| return t(arguments.length > 0), | |
| i && i(e), | |
| s ? s.call(r, e, n).then(function(e) { | |
| return r._set(e, n) | |
| }) : r._set(e, n) | |
| }, "sync"), | |
| _write: function(e, t) { | |
| var n = this | |
| , r = n._check | |
| , i = n._setter; | |
| r && r(e); | |
| if (!n.set.enabled()) | |
| throw Error("This is a read-only property."); | |
| i && t !== h.sUpdated ? i.call(n, e, t).then(function(e) { | |
| n._set(e, t) | |
| }) : n._set(e, t) | |
| } | |
| }), | |
| h.true = h({ | |
| value: !0, | |
| readOnly: !0 | |
| }), | |
| h.false = h({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| h.true.get.enabled = h.true, | |
| h.true.set.enabled = h.false, | |
| h.false.get.enabled = h.true, | |
| h.false.set.enabled = h.false, | |
| c.instance.enabled = h.false, | |
| h.null = h({ | |
| value: null , | |
| readOnly: !0 | |
| }), | |
| p.prototype = function() {} | |
| , | |
| Y(p.prototype, { | |
| _init: function() { | |
| var e = this; | |
| Object.defineProperties(e, { | |
| added: { | |
| enumerable: !0, | |
| get: e._initAddedEvent, | |
| set: function(t) { | |
| e._initAddedEvent(), | |
| e._.added.observer = t | |
| } | |
| }, | |
| removed: { | |
| enumerable: !0, | |
| get: e._initRemovedEvent, | |
| set: function(t) { | |
| e._initRemovedEvent(), | |
| e._.removed.observer = t | |
| } | |
| }, | |
| changed: { | |
| enumerable: !0, | |
| get: e._initChangedEvent, | |
| set: function(t) { | |
| e._initChangedEvent(), | |
| e._.changed.observer = t | |
| } | |
| }, | |
| size: { | |
| enumerable: !0, | |
| get: e._initSizeProperty, | |
| set: function(t) { | |
| e._initSizeProperty(), | |
| e._.size.observer = t | |
| } | |
| } | |
| }) | |
| }, | |
| _initAddedEvent: function() { | |
| var e = this, t = e._, n = "added", r; | |
| return t[n] = t[n] || new s({ | |
| context: e, | |
| adding: e._addedListenerAdding | |
| }), | |
| r = t[n].observer, | |
| r | |
| }, | |
| _addedListenerAdding: function(e) { | |
| var t = this | |
| , n = t._; | |
| it(n.vals, function(t, r) { | |
| e(t, n.keys[r], r) | |
| }) | |
| }, | |
| _initRemovedEvent: function() { | |
| var e = this, t = e._, n = "removed", r; | |
| return t[n] = t[n] || new s, | |
| r = t[n].observer, | |
| r | |
| }, | |
| _initChangedEvent: function() { | |
| var e = this, t = e._, n = "changed", r; | |
| return t[n] = t[n] || new s({ | |
| added: e._changedListenerAdded | |
| }), | |
| r = t[n].observer, | |
| r | |
| }, | |
| _changedListenerAdded: function(e) { | |
| e() | |
| }, | |
| _initSizeProperty: function() { | |
| var e = this, t = e._, n = "size", r; | |
| return t[n] = t[n] || gn(t.vals.length), | |
| r = t[n].asReadOnly(), | |
| r | |
| }, | |
| subscribe: function() { | |
| var e = this | |
| , t = e._; | |
| return e.subscribe = dn(t.subscribed, t.unsubscribed), | |
| e.subscribe() | |
| }, | |
| observed: function() { | |
| var e = this._ | |
| , t = e.added | |
| , n = e.removed | |
| , r = e.changed; | |
| return t && t.observed() || n && n.observed() || r && r.observed() | |
| }, | |
| _insert: function(e, t, n) { | |
| var r, i = this._, s = i.vals.length; | |
| for (r = n; r < s; r++) | |
| i.idxs[i.keys[r]]++; | |
| K(i.vals, n, e), | |
| K(i.keys, n, t), | |
| i.idxs[t] = n | |
| }, | |
| add: function(e, t, n) { | |
| var r = this._ | |
| , i = r.vals.length; | |
| t = t || (r.key || tt)(e); | |
| if (t in r.idxs) | |
| throw _(t); | |
| return n = kt(n) ? n : i, | |
| n < 0 && (n = 0), | |
| n > i && (n = i), | |
| this._insert(e, t, n), | |
| r.size && r.size.inc(), | |
| r.added && r.added.fire(e, t, n), | |
| r.changed && r.changed.fire(), | |
| t | |
| }, | |
| remove: function(e) { | |
| var t = this._, n, r, i; | |
| kt(e) ? (n = e, | |
| e = t.keys[n]) : n = t.idxs[e], | |
| r = t.vals[n]; | |
| if (n >= 0 && n < t.vals.length) { | |
| for (i = n + 1; i < t.keys.length; i++) | |
| t.idxs[t.keys[i]]--; | |
| J(t.vals, n), | |
| J(t.keys, n), | |
| delete t.idxs[e], | |
| t.size && t.size.dec(), | |
| t.removed && t.removed.fire(r, e, n), | |
| t.changed && t.changed.fire() | |
| } | |
| }, | |
| _getFromCache: function(e) { | |
| var t = this._; | |
| return Et(e) ? t.vals[t.idxs[e]] : t.vals[e] | |
| }, | |
| get: function(e) { | |
| var t = this | |
| , n = t._.get | |
| , r = n && n().then(function(e) { | |
| return t._setNewItems(e) | |
| }); | |
| return o.wait(r).then(function() { | |
| return Ct(e) ? t._asArray() : t._getFromCache(e) | |
| }) | |
| }, | |
| index: function(e) { | |
| return this._.idxs[e] | |
| }, | |
| key: function(e) { | |
| return this._.keys[e] | |
| }, | |
| _setNewItems: function(e) { | |
| var t = this, n = t._, r; | |
| if (!yt(e)) | |
| return; | |
| for (r in n.idxs) | |
| (!(r in e) || n.vals[n.idxs[r]] !== e[r]) && t.remove(r); | |
| for (r in e) | |
| r in n.idxs || t.add(e[r], r) | |
| }, | |
| empty: function() { | |
| var e = this._, t; | |
| if (e.removed) | |
| for (t = 0; t < e.vals.length; t++) | |
| e.removed.fire(e.vals[t], e.keys[t]); | |
| e.vals = [], | |
| e.keys = [], | |
| e.idxs = {}, | |
| e.size && e.size(0), | |
| e.changed && e.changed.fire() | |
| }, | |
| _addArray: function(e) { | |
| for (var t = 0; t < e.length; t++) | |
| this.add(e[t]) | |
| }, | |
| _asArray: function() { | |
| return this._.vals.slice(0) | |
| }, | |
| asReadOnly: function() { | |
| function n(e) { | |
| return arguments.length == 0 ? t._asArray() : t._getFromCache(e) | |
| } | |
| var e = n | |
| , t = this; | |
| return F(e, t), | |
| e._init(), | |
| e.add = null , | |
| e.remove = null , | |
| e.empty = null , | |
| e | |
| }, | |
| fork: function(e) { | |
| function r(e) { | |
| return jt(e) ? ln(Wt(e), e.enabled) : xt(e) ? cn(Wt(e)) : c(P()) | |
| } | |
| function i(e) { | |
| return arguments.length == 0 ? n() : n(e) | |
| } | |
| var t = i | |
| , n = this; | |
| return F(t, n), | |
| Y(t, { | |
| add: r(e.add), | |
| remove: r(e.remove) | |
| }), | |
| t._init(), | |
| t | |
| }, | |
| asWritable: function(e) { | |
| return this.fork(e) | |
| } | |
| }), | |
| Y(p.prototype, { | |
| constructor: p, | |
| toString: function() { | |
| return "[Collection: " + this.size() + " items]" | |
| }, | |
| each: function(e) { | |
| return this.added(e), | |
| this.added.off(e), | |
| this | |
| }, | |
| contains: function(e) { | |
| var t = !1; | |
| return this.each(function(n) { | |
| e(n) && (t = !0) | |
| }), | |
| t | |
| }, | |
| observe: function(e) { | |
| function s(e, t) { | |
| r[t] = e, | |
| delete i[t], | |
| u() | |
| } | |
| function o(e, t) { | |
| i[t] = e, | |
| delete r[t], | |
| u() | |
| } | |
| function u() { | |
| t || (t = v(function() { | |
| var n = r | |
| , s = i; | |
| r = {}, | |
| i = {}, | |
| t = null , | |
| e(n, s) | |
| }, 0)) | |
| } | |
| function a() { | |
| t && (m(t), | |
| t = null ) | |
| } | |
| var t, n = this, r = {}, i = {}; | |
| return n.added(s), | |
| n.removed(o), | |
| { | |
| dispose: function() { | |
| a(), | |
| n.added.off(s), | |
| n.removed.off(o) | |
| } | |
| } | |
| }, | |
| map: function(e) { | |
| var t = this, n, r = p({ | |
| get: function(e) { | |
| return t.get().then(function() { | |
| return r(e) | |
| }) | |
| }, | |
| subscribed: function() { | |
| n = t.subscribe() | |
| }, | |
| unsubscribed: function() { | |
| n.dispose() | |
| } | |
| }); | |
| return t.added(function(t, n, i) { | |
| r.add(e(t), n, i) | |
| }), | |
| t.removed(function(e, t) { | |
| r.remove(t) | |
| }), | |
| r.asReadOnly() | |
| }, | |
| filter: function(e) { | |
| var t = this, n, r = p({ | |
| get: function(e) { | |
| return t.get().then(function() { | |
| return r(e) | |
| }) | |
| }, | |
| subscribed: function() { | |
| n = t.subscribe() | |
| }, | |
| unsubscribed: function() { | |
| n.dispose() | |
| } | |
| }); | |
| return t.added(function(n, i, s) { | |
| var o, u, a; | |
| if (!e(n)) | |
| return; | |
| o = s + 1, | |
| u = t.size(); | |
| while (o < u && !e(t(o))) | |
| o++; | |
| a = o < u ? r.index(t.key(o)) : r.size(), | |
| r.add(n, i, a) | |
| }), | |
| t.removed(function(e, t) { | |
| r.remove(t) | |
| }), | |
| r.asReadOnly() | |
| }, | |
| sort: function(e) { | |
| function i(t, n) { | |
| return e(t, n) || !e(n, t) | |
| } | |
| var t = this, n, r = p({ | |
| get: function(e) { | |
| return t.get().then(function() { | |
| return r(e) | |
| }) | |
| }, | |
| subscribed: function() { | |
| n = t.subscribe() | |
| }, | |
| unsubscribed: function() { | |
| n.dispose() | |
| } | |
| }); | |
| return t.added(function(e, n, s) { | |
| var o = r.size() | |
| , u = 0; | |
| while (u < o && !i(e, r(u))) | |
| u++; | |
| while (u < o && i(r(u), e) && t.index(r.key(u)) < s) | |
| u++; | |
| r.add(e, n, u) | |
| }), | |
| t.removed(function(e, t) { | |
| r.remove(t) | |
| }), | |
| r.asReadOnly() | |
| } | |
| }), | |
| p.empty = p().asReadOnly(); | |
| var Tn = function(t) { | |
| function r(e) { | |
| var t = function(t) { | |
| return arguments.length == 0 ? (n[e] || "") + "" : (n[e] = (t || "") + "", | |
| this) | |
| } | |
| ; | |
| return t.toString = function() { | |
| return t() | |
| } | |
| , | |
| t | |
| } | |
| var n; | |
| if (!(e instanceof Tn)) | |
| return new Tn(t); | |
| n = Tn.pattern.exec((t || "") + ""); | |
| if (!n) | |
| throw new SyntaxError("Invalid URI: " + t); | |
| e.scheme = r("scheme"), | |
| e.user = r("user"), | |
| e.host = r("host"), | |
| e.port = r("port"), | |
| e.path = r("path"), | |
| e.query = r("query"), | |
| e.hash = r("hash") | |
| } | |
| ; | |
| Tn.prototype.toString = function() { | |
| function e(e, t) { | |
| return t ? e + t : "" | |
| } | |
| var t = (this.user() ? this.user() + "@" : "") + (this.host() || "") + e(":", this.port()); | |
| return (this.scheme() ? this.scheme() + ":" : "") + e("//", t) + this.path() + e("?", this.query()) + e("#", this.hash()) | |
| } | |
| , | |
| Tn.pattern = { | |
| regexp: /^(?:([a-zA-Z][\w+-.]*):)?(?:\/\/(?:([^/@]*)@)?([^:/?#]*)(?:\:(\d*))?)?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/, | |
| exec: function(e) { | |
| var t = this.regexp.exec(e); | |
| return t && { | |
| scheme: t[1], | |
| user: t[2], | |
| host: t[3], | |
| port: t[4], | |
| path: t[5], | |
| query: t[6], | |
| hash: t[7] | |
| } | |
| } | |
| }, | |
| Tn.Query = function(e) { | |
| if (!(this instanceof Tn.Query)) | |
| return new Tn.Query(e); | |
| var t = this; | |
| Et(e) ? it(e.split("&"), function(e) { | |
| var n, r, i = e.indexOf("="); | |
| i < 0 ? (n = e, | |
| r = "") : (n = e.slice(0, i), | |
| r = e.slice(i + 1)), | |
| n && (t[decodeURIComponent(n)] = decodeURIComponent(r)) | |
| }) : e && it(mt(e), function(e, n) { | |
| t[n] = e + "" | |
| }) | |
| } | |
| , | |
| Tn.Query.prototype.toString = function() { | |
| var e = []; | |
| return it(mt(this), function(t, n) { | |
| e.push(t ? encodeURIComponent(n) + "=" + encodeURIComponent(t) : encodeURIComponent(n)) | |
| }), | |
| e.join("&") | |
| } | |
| ; | |
| var Nn = { | |
| isInfo: V(At, 100, 199), | |
| isSuccess: V(At, 200, 299), | |
| isRedirection: V(At, 300, 399), | |
| isClientError: V(At, 400, 499), | |
| isServerError: V(At, 500, 599), | |
| isError: V(At, 400, 599), | |
| Unauthorized: 401, | |
| ProxyAuthenticationRequired: 407, | |
| ExpectationFailed: 417, | |
| TooManyRequests: 429, | |
| InternalServerError: 500 | |
| }; | |
| try { | |
| return { | |
| isPromise: Pt, | |
| isCommand: jt, | |
| isProperty: Bt, | |
| isCollection: Ht, | |
| command: ln, | |
| disabledAsyncCommand: c, | |
| disabledCommand: l, | |
| enabledCommand: cn, | |
| event: s, | |
| async: Wt, | |
| promise: Jt, | |
| task: o, | |
| collection: p, | |
| property: h, | |
| constProperty: mn, | |
| boolProperty: yn, | |
| numProperty: gn | |
| } | |
| } catch (Mn) {} | |
| }(); | |
| return i | |
| }), | |
| define("jcafe-property-model", ["jcafe-property-model/lib/propertyModel"], function(e) { | |
| return e | |
| }), | |
| define("jSkype/modelHelpers/signIn/parameterBuilder", ["require", "exports", "module", "cafe/enums", "lodash-compat"], function(e, t) { | |
| var n = e("cafe/enums") | |
| , r = e("lodash-compat"); | |
| t.createPasswordSignInParameter = function(e) { | |
| if (!r.isString(e.username)) | |
| throw new Error("Username not defined"); | |
| if (!r.isString(e.password)) | |
| throw new Error("Password not defined"); | |
| return { | |
| username: e.username, | |
| password: e.password, | |
| type: n.authType.Password | |
| } | |
| } | |
| , | |
| t.createImplicitOAuthSignInParameter = function(e) { | |
| if (!r.isString(e.client_id)) | |
| throw new Error("client_id not defined"); | |
| return { | |
| client_id: e.client_id, | |
| type: n.authType.ImplicitOAuth | |
| } | |
| } | |
| , | |
| t.createTokenImplicitOAuthSignInParameter = function(e) { | |
| if (!r.isString(e.client_id)) | |
| throw new Error("client_id not defined"); | |
| if (!r.isString(e.skypetoken)) | |
| throw new Error("skypetoken not defined"); | |
| if (!r.isString(e.rps_token)) | |
| throw new Error("rps_token not defined"); | |
| if (!r.isNumber(e.expires_in)) | |
| throw new Error("expires_in not defined"); | |
| return { | |
| skypetoken: e.skypetoken, | |
| rps_token: e.rps_token, | |
| expires_in: e.expires_in, | |
| client_id: e.client_id, | |
| type: n.authType.ImplicitOAuth, | |
| site_name: e.site_name | |
| } | |
| } | |
| , | |
| t.createGuestSignInParameter = function(e) { | |
| if (!r.isString(e.displayName)) | |
| throw new Error("DisplayName not defined"); | |
| return { | |
| displayName: e.displayName, | |
| type: n.authType.Guest | |
| } | |
| } | |
| , | |
| t.createTokenSignInParameter = function(e) { | |
| if (!r.isFunction(e.getToken)) | |
| throw new Error("getToken method is not defined"); | |
| return { | |
| type: n.authType.Token, | |
| getToken: e.getToken | |
| } | |
| } | |
| }), | |
| define("jSkype/modelHelpers/propertyModelHelper", ["require", "exports", "module", "jcafe-property-model"], function(e, t) { | |
| var n = e("jcafe-property-model"); | |
| t.exposeReadOnlyCollection = function(e) { | |
| function n(e, t) { | |
| var n; | |
| for (n = 0; n < e.size(); ++n) | |
| if (t(e(n))) | |
| return n; | |
| return -1 | |
| } | |
| var t = e.asReadOnly(); | |
| return t._add = e.add, | |
| t._remove = e.remove, | |
| t._removeAll = e.empty, | |
| t._removeByCondition = function(t) { | |
| var r = n(e, t); | |
| r >= 0 && e.remove(r) | |
| } | |
| , | |
| t | |
| } | |
| , | |
| t.createPropertyWithSetter = function(e, t, r) { | |
| var i = n.property({ | |
| value: !!r | |
| }) | |
| , s = n.command(t, i) | |
| , o = n.property({ | |
| value: e, | |
| set: s | |
| }); | |
| return o.set._enabled = i, | |
| o | |
| } | |
| , | |
| t.createCommandWithSetter = function(e, t) { | |
| var r = n.command(e, t); | |
| return r._enabled = t, | |
| r | |
| } | |
| , | |
| t.createResolvedPromise = function(e) { | |
| var t = n.task(); | |
| return t.resolve(e), | |
| t.promise | |
| } | |
| , | |
| t.createRejectedPromise = function(e) { | |
| var t = n.task(); | |
| return t.reject(e), | |
| t.promise | |
| } | |
| , | |
| t.createCancellablePromiseFunction = function(e, n) { | |
| return function() { | |
| return n() ? t.createRejectedPromise() : e() | |
| } | |
| } | |
| }), | |
| define("jSkype/modelHelpers/signIn/handlers/token", ["require", "exports", "module", "jSkype/modelHelpers/propertyModelHelper"], function(e, t) { | |
| function r(e) { | |
| if (e && e.getToken) | |
| return { | |
| getToken: e.getToken | |
| }; | |
| throw "Unknown signIn parameter" | |
| } | |
| var n = e("jSkype/modelHelpers/propertyModelHelper"); | |
| t.handler = function(e) { | |
| return n.createResolvedPromise(r(e)) | |
| } | |
| }), | |
| define("jSkype/modelHelpers/signIn/handlers/password", ["require", "exports", "module", "jSkype/modelHelpers/propertyModelHelper"], function(e, t) { | |
| function r() { | |
| return { | |
| getToken: function() { | |
| return !0 | |
| } | |
| } | |
| } | |
| var n = e("jSkype/modelHelpers/propertyModelHelper"); | |
| t.handler = function() { | |
| return n.createResolvedPromise(r()) | |
| } | |
| }), | |
| function() { | |
| typeof SKYPE == "undefined" && (window.SKYPE = {}), | |
| SKYPE.login = SKYPE.login || {}, | |
| SKYPE.login.Silent = function() { | |
| var e = { | |
| pre: "https://prelogin.skype.net", | |
| qa: "https://qalogin.skype.net", | |
| live: "https://login.skype.com" | |
| }, t = { | |
| pre: "https://a.pre.lw.skype.net", | |
| qa: "https://a.qa.lw.skype.net", | |
| live: "https://a.lw.skype.com" | |
| }, n = "/login/silent", r = "1.0", i = null , s, o, u = {}, a = 2e4, f = null , l = null , c = "", h = !1, p = !1, d = null , v = { | |
| env: "live", | |
| client_id: null , | |
| redirect_uri: null , | |
| microsoft: !1, | |
| use_azure: !1 | |
| }, m = function(e, t) { | |
| d === null && (d = window.location.host.match(/^(pre|qa).*\.net$/) || document.cookie.indexOf("debug") > -1 || window.location.search.indexOf("debug") > -1); | |
| if (!d) | |
| return; | |
| try { | |
| if (typeof t == "object") { | |
| var n = []; | |
| for (var r in t) | |
| r === "skypetoken" ? n.push(r + ": " + "<HIDDEN>") : n.push(r + ": " + JSON.stringify(t[r])); | |
| e += " - " + n.join(", ") | |
| } else | |
| typeof t == "string" && (e += " - " + t); | |
| e = "[silentlogin.js] - " + e | |
| } catch (i) {} | |
| } | |
| , g = function(e) { | |
| m("Received message from " + e.origin); | |
| if (!l || e.origin !== l) | |
| return; | |
| var t = e.data; | |
| if (typeof e.data == "string") | |
| try { | |
| t = JSON.parse(e.data) | |
| } catch (n) {} | |
| m("Message data", t); | |
| var r = t.state || null ; | |
| if (c !== r) { | |
| m("State " + r + " doesn't match the last submitted state " + c); | |
| return | |
| } | |
| window.clearTimeout(f), | |
| u = {}; | |
| for (var i in t) | |
| t.hasOwnProperty(i) && (u[i] = t[i]); | |
| S() | |
| } | |
| , y = function(e) { | |
| b(), | |
| typeof s == "undefined" && (s = document.body || document.head || document.getElementsByTagName("head")[0]), | |
| i = document.createElement("iframe"), | |
| i.frameBorder = 0, | |
| i.width = "1px", | |
| i.height = "1px", | |
| i.style.display = "none", | |
| i.style.visibility = "hidden", | |
| i.id = "silentLoginFrame" + Math.floor(Math.random() * 10 + 1), | |
| i.setAttribute("tabindex", -1), | |
| i.setAttribute("src", e), | |
| s.appendChild(i), | |
| m("Created iFrame: " + e) | |
| } | |
| , b = function() { | |
| i && (s.removeChild(i), | |
| i = null ) | |
| } | |
| , w = function() { | |
| if (!v.client_id) | |
| throw "[silentlogin.js] client_id not initialized. Call init() first."; | |
| v.redirect_uri || (v.redirect_uri = window.location.protocol + "//" + window.location.host + window.location.pathname) | |
| } | |
| , E = function() { | |
| return "postMessage" in window && typeof JSON == "object" && JSON.parse | |
| } | |
| , S = function() { | |
| m("Calling callback function", u), | |
| p = !1, | |
| typeof o == "function" && o(u) | |
| } | |
| , x = function() { | |
| b(), | |
| u = {}, | |
| u.error = "timeout", | |
| S() | |
| } | |
| , T = function(e) { | |
| var t = []; | |
| for (var n in e) | |
| e.hasOwnProperty(n) && t.push(encodeURIComponent(n) + "=" + encodeURIComponent(e[n])); | |
| return t.join("&") | |
| } | |
| , N = function() { | |
| var i = (new Date).getTime() | |
| , s = e; | |
| c = "silentloginsdk_" + i; | |
| var o = { | |
| response_type: "postmessage", | |
| client_id: v.client_id, | |
| redirect_uri: v.redirect_uri, | |
| state: c, | |
| _accept: r, | |
| _nc: i | |
| }; | |
| return v.microsoft && (o.partner = "999", | |
| s = v.use_azure ? t : e), | |
| l = s[v.env] || s.live, | |
| l + n + "?" + T(o) | |
| } | |
| , C = function(e) { | |
| if (typeof e == "object") { | |
| e = e || {}, | |
| e.hasOwnProperty("callback") && k(e.callback); | |
| for (var t in v) | |
| e.hasOwnProperty(t) && (v[t] = e[t]) | |
| } | |
| return h || (h = !0, | |
| window.addEventListener ? window.addEventListener("message", g, !1) : window.attachEvent("onmessage", g)), | |
| this | |
| } | |
| , k = function(e) { | |
| return typeof e == "function" && (o = e), | |
| this | |
| } | |
| , L = function() { | |
| if (p) | |
| return; | |
| w(), | |
| p = !0; | |
| if (!E()) { | |
| u = { | |
| error: "unsupported_browser" | |
| }, | |
| S(); | |
| return | |
| } | |
| window.clearTimeout(f), | |
| f = window.setTimeout(x, a), | |
| y(N()) | |
| } | |
| , A = function() { | |
| return u.skypetoken || null | |
| } | |
| , O = function() { | |
| return u | |
| } | |
| ; | |
| return { | |
| init: C, | |
| setCallback: k, | |
| load: L, | |
| getSkypetoken: A, | |
| getFullResponse: O | |
| } | |
| }() | |
| }(), | |
| define("silentLogin", function(e) { | |
| return function() { | |
| var t, n; | |
| return t || e.SKYPE.login.Silent | |
| } | |
| }(this)), | |
| define("jSkype/settings", ["require", "exports", "module"], function(e, t) { | |
| t.settings = { | |
| flagsApiUrl: "", | |
| userOptionsService: { | |
| host: "", | |
| optionsEndpoint: "" | |
| }, | |
| contactsProxyService: {}, | |
| stratusService: { | |
| host: "", | |
| avatarUrl: "" | |
| }, | |
| peopleService: { | |
| appId: "", | |
| settingsEndpoint: "" | |
| }, | |
| profileService: { | |
| appId: "", | |
| profileEndpoint: "" | |
| } | |
| }, | |
| t.isFeatureOn = function(e) { | |
| return t.settings.featureFlags ? Boolean(t.settings.featureFlags[e]) : !1 | |
| } | |
| }), | |
| define("jSkype/modelHelpers/signIn/handlers/implicitOAuth", ["require", "exports", "module", "lodash-compat", "silentLogin", "jSkype/settings", "constants/common"], function(e, t) { | |
| function u(e) { | |
| return !!e.skypetoken && !!e.expires_in && !!e.rps_token | |
| } | |
| function a(e) { | |
| var t = Promise.resolve(c(n.clone(e))); | |
| return f(e), | |
| t | |
| } | |
| function f(e) { | |
| delete e.skypetoken, | |
| delete e.expires_in, | |
| delete e.rps_token, | |
| delete e.site_name | |
| } | |
| function l(e) { | |
| var t = new Promise(function(t, n) { | |
| function o(e) { | |
| e && e.skypetoken ? t(c(e)) : n(e || "unknown_error") | |
| } | |
| r.init({ | |
| env: i.settings.xcoEnv, | |
| client_id: e.client_id, | |
| microsoft: !0, | |
| use_azure: i.isFeatureOn(s.featureFlags.USE_AZURE_BASED_SILENT_LOGIN) | |
| }), | |
| r.setCallback(o), | |
| r.load() | |
| } | |
| ); | |
| return t | |
| } | |
| function c(e) { | |
| function r() { | |
| return e.skypetoken | |
| } | |
| function i() { | |
| var r = e.expires_in; | |
| return n.isNumber(r) ? t + h(r) : t + h(o) | |
| } | |
| function s() { | |
| return e.rps_token | |
| } | |
| function u() { | |
| return e.site_name | |
| } | |
| var t = Date.now(); | |
| return { | |
| getToken: r, | |
| getExpiryTime: i, | |
| getRpsToken: s, | |
| getSiteName: u | |
| } | |
| } | |
| function h(e) { | |
| return e * 1e3 | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("silentLogin") | |
| , i = e("jSkype/settings") | |
| , s = e("constants/common") | |
| , o = 3600; | |
| t.handler = function(e) { | |
| var t; | |
| return u(e) ? t = a(e) : t = l(e), | |
| t | |
| } | |
| }), | |
| define("jSkype/modelHelpers/signIn/handlers", ["require", "exports", "module", "cafe/enums", "jSkype/modelHelpers/signIn/handlers/token", "jSkype/modelHelpers/signIn/handlers/password", "jSkype/modelHelpers/signIn/handlers/implicitOAuth"], function(e, t, n) { | |
| var r = e("cafe/enums") | |
| , i = e("jSkype/modelHelpers/signIn/handlers/token").handler | |
| , s = e("jSkype/modelHelpers/signIn/handlers/password").handler | |
| , o = e("jSkype/modelHelpers/signIn/handlers/implicitOAuth").handler; | |
| n.exports = {}, | |
| n.exports[r.authType.Token] = i, | |
| n.exports[r.authType.Password] = s, | |
| n.exports[r.authType.ImplicitOAuth] = o | |
| }), | |
| define("jSkype/modelHelpers/signIn/skypeTokenManager", ["require", "exports", "module", "jcafe-property-model", "jSkype/modelHelpers/signIn/handlers", "cafe/enums"], function(e, t) { | |
| function o(e) { | |
| function a() { | |
| return t && !f() ? l() : p() | |
| } | |
| function f() { | |
| return o === i.authType.ImplicitOAuth ? Date.now() >= t.getExpiryTime() - s : !1 | |
| } | |
| function l() { | |
| var e = {}; | |
| return e.token = t.getToken ? t.getToken() : undefined, | |
| o === i.authType.ImplicitOAuth && (e.rpsToken = t.getRpsToken(), | |
| e.siteName = t.getSiteName()), | |
| e | |
| } | |
| function c(e) { | |
| d(e), | |
| this.resolve(l()) | |
| } | |
| function h(e) { | |
| this.reject(e) | |
| } | |
| function p() { | |
| var t = r[o] | |
| , i = n.task(); | |
| return o && t ? t(e).then(c.bind(i), h.bind(i)) : i.reject("Unknown sign in parameters"), | |
| i.promise | |
| } | |
| function d(e) { | |
| e && (t = e) | |
| } | |
| e = e || {}; | |
| var t, o = e.type || null , u = n.property({ | |
| get: a | |
| }); | |
| return { | |
| get: u.get.bind(u) | |
| } | |
| } | |
| var n = e("jcafe-property-model") | |
| , r = e("jSkype/modelHelpers/signIn/handlers") | |
| , i = e("cafe/enums") | |
| , s = 6e5; | |
| t.build = function(e) { | |
| return new o(e) | |
| } | |
| }), | |
| define("jSkype/models/location", ["require", "jcafe-property-model"], function(e) { | |
| function n() { | |
| this.type = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.street = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.city = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.state = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.country = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.postalCode = t.property({ | |
| readOnly: !0 | |
| }) | |
| } | |
| var t = e("jcafe-property-model"); | |
| return n | |
| }), | |
| define("jSkype/models/capabilities", ["require", "jcafe-property-model"], function(e) { | |
| function n() { | |
| this.chat = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this.audio = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this.video = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this.groupAdd = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this.screenSharing = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this.dataCollaboration = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }), | |
| this._groupChat = t.property({ | |
| value: !1, | |
| readOnly: !0 | |
| }) | |
| } | |
| var t = e("jcafe-property-model"); | |
| return n | |
| }), | |
| define("jSkype/models/phoneNumber", ["require", "jcafe-property-model"], function(e) { | |
| function n() { | |
| this.type = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.telUri = t.property({ | |
| readOnly: !0 | |
| }), | |
| this.displayString = t.property({ | |
| readOnly: !0 | |
| }) | |
| } | |
| var t = e("jcafe-property-model"); | |
| return n | |
| }), | |
| define("jSkype/modelHelpers/contacts/dataMappers/dataMaps", ["require", "exports", "module", "cafe/enums"], function(e, t) { | |
| var n = e("cafe/enums"); | |
| t.contactTypeNames = { | |
| agent: "agent", | |
| lync: "lync", | |
| msn: "msn", | |
| skype: "skype", | |
| pstn: "pstn" | |
| }, | |
| t.phoneTypeKeys = { | |
| Home: "0", | |
| Work: "1", | |
| Cell: "2", | |
| Other: "3" | |
| }, | |
| t.contactTypes = {}, | |
| t.contactTypes[t.contactTypeNames.agent] = "28", | |
| t.contactTypes[t.contactTypeNames.lync] = "2", | |
| t.contactTypes[t.contactTypeNames.msn] = "1", | |
| t.contactTypes[t.contactTypeNames.skype] = "8", | |
| t.contactTypes[t.contactTypeNames.pstn] = "4", | |
| t.phoneTypes = {}, | |
| t.phoneTypes[t.phoneTypeKeys.Home] = n.phoneType.Home, | |
| t.phoneTypes[t.phoneTypeKeys.Work] = n.phoneType.Work, | |
| t.phoneTypes[t.phoneTypeKeys.Cell] = n.phoneType.Cell, | |
| t.phoneTypes[t.phoneTypeKeys.Other] = n.phoneType.Other | |
| }), | |
| define("jSkype/services/stratus/serviceSettings", ["require", "exports", "module", "jSkype/settings", "constants/common"], function(e, t) { | |
| function i(e) { | |
| return "${" + e + "}" | |
| } | |
| var n = e("jSkype/settings") | |
| , r = e("constants/common"); | |
| t.getHost = function() { | |
| return n.settings.stratusService.host | |
| } | |
| , | |
| t.getAvatarEndPoint = function(e) { | |
| return t.getHost() + n.settings.stratusService.avatarUrl.replace(t.tokens.contactId, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getAvatarUpdateEndPoint = function(e) { | |
| return n.settings.stratusService.avatarUpdateUrl.replace(t.tokens.contactId, e) | |
| } | |
| , | |
| t.getProfileEndPoint = function() { | |
| return n.settings.stratusService.profileEndpoint | |
| } | |
| , | |
| t.getProfilesEndPoint = function() { | |
| return n.settings.stratusService.profilesEndpoint | |
| } | |
| , | |
| t.getProfilesEndPointV2 = function() { | |
| return n.settings.stratusService.batchProfilesEndpoint | |
| } | |
| , | |
| t.getUserInfoEndPoint = function() { | |
| return n.settings.stratusService.userInfoEndpoint | |
| } | |
| , | |
| t.getContactsEndPoint = function() { | |
| return n.settings.stratusService.contactsEndpoint | |
| } | |
| , | |
| t.getBlockContactEndpoint = function(e) { | |
| return n.settings.stratusService.blockContactEndpoint.replace(t.tokens.contactId, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getUnblockContactEndpoint = function(e) { | |
| return n.settings.stratusService.unblockContactEndpoint.replace(t.tokens.contactId, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getDeleteContactEndpoint = function(e) { | |
| return n.settings.stratusService.deleteContactEndpoint.replace(t.tokens.contactId, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getContactRequestEndpoint = function() { | |
| return n.settings.stratusService.contactRequestEndpoint | |
| } | |
| , | |
| t.getTimeIntervalForContactRequests = function() { | |
| return n.settings.stratusService.contactRequestTimeInterval | |
| } | |
| , | |
| t.getDelayForFirstContactRequest = function() { | |
| return n.settings.stratusService.firstContactRequestDelay | |
| } | |
| , | |
| t.getDirectorySearchEndpoint = function(e) { | |
| return n.isFeatureOn(r.featureFlags.DIRECTORY_SEARCH_SKYPE_AND_LYNC) ? n.settings.stratusService.directorySearchEndpoint.replace(t.tokens.keyword, encodeURIComponent(e)) : n.settings.stratusService.directorySearchEndpointSkypeOnly.replace(t.tokens.keyword, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getDirectorySearchByIdEndpoint = function(e) { | |
| return n.settings.stratusService.directorySearchByIdEndpoint.replace(t.tokens.skypeName, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getRetryPolicy = function() { | |
| return n.settings.stratusService.retry | |
| } | |
| , | |
| t.tokens = { | |
| id: i("id"), | |
| contactId: i("contactId"), | |
| version: i("version"), | |
| keyword: i("keyword"), | |
| skypeName: i("skypeName"), | |
| reason: i("reason") | |
| } | |
| }), | |
| define("constants/people", [], function() { | |
| var e = { | |
| SELF: "self", | |
| ECHO_CONTACT_ID: "echo123", | |
| searchLimit: 20, | |
| contactTypes: { | |
| USER: "8", | |
| AGENT: "28", | |
| PSTN: "4" | |
| }, | |
| contactList: { | |
| className: { | |
| LOCAL: "people", | |
| DIRECTORY: "directory" | |
| } | |
| }, | |
| contactPicker: { | |
| states: { | |
| STATE_DEFAULT: "default", | |
| STATE_SEARCH: "search" | |
| } | |
| }, | |
| authorizationStates: { | |
| UNKNOWN: "UNKNOWN", | |
| UNAUTHORIZED: "UNAUTHORIZED", | |
| PENDING_OUTGOING: "PENDING_OUTGOING", | |
| PENDING_INCOMING: "PENDING_INCOMING", | |
| AUTHORIZED: "AUTHORIZED", | |
| SUGGESTED: "SUGGESTED" | |
| }, | |
| showStrategies: { | |
| AVAILABLE_ONLY: "AVAILABLE_ONLY", | |
| AGENTS_ONLY: "AGENTS_ONLY" | |
| }, | |
| contactPageTabIds: { | |
| AVAILABLE_TAB: "availableTab", | |
| ALL_CONTACTS_TAB: "allContactsTab", | |
| AGENTS_TAB: "agentsTab" | |
| }, | |
| scopes: { | |
| FULL: "full" | |
| } | |
| }; | |
| return e | |
| }), | |
| define("jSkype/constants/people", { | |
| SELF: "self", | |
| SUGGESTED_CONTACT_ACTIVITY_MESSAGE: "Skype", | |
| batch: { | |
| MAX_ITEMS: 100, | |
| MAX_DELAY: 500 | |
| }, | |
| contactList: { | |
| retry: { | |
| TIMEOUT: 3e4 | |
| } | |
| }, | |
| endpoints: { | |
| MOBILE: "isMobile" | |
| }, | |
| authorizationStates: { | |
| UNKNOWN: "UNKNOWN", | |
| UNAUTHORIZED: "UNAUTHORIZED", | |
| PENDING_OUTGOING: "PENDING_OUTGOING", | |
| PENDING_INCOMING: "PENDING_INCOMING", | |
| AUTHORIZED: "AUTHORIZED", | |
| SUGGESTED: "SUGGESTED" | |
| } | |
| }), | |
| define("jSkype/modelHelpers/personHelper", ["require", "exports", "module", "lodash-compat", "jSkype/modelHelpers/contacts/dataMappers/dataMaps", "jSkype/services/stratus/serviceSettings", "constants/people", "jSkype/constants/people"], function(e, t) { | |
| function f(e) { | |
| return e.match(u) | |
| } | |
| function l(e, i) { | |
| return t.isPstnId(e) ? c(e, r.contactTypes.pstn) : n(r.contactTypes).values().contains(i) ? c(e, i) : c(e, r.contactTypes.skype) | |
| } | |
| function c(e, t) { | |
| return t + ":" + e | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("jSkype/modelHelpers/contacts/dataMappers/dataMaps") | |
| , i = e("jSkype/services/stratus/serviceSettings") | |
| , s = e("constants/people") | |
| , o = e("jSkype/constants/people").authorizationStates | |
| , u = /^(?:(\d+):)+/ | |
| , a = /^guest:/; | |
| t.getId = function(e) { | |
| if (n.isString(e)) | |
| return e.replace(u, "") | |
| } | |
| , | |
| t.getKey = function(e, t) { | |
| if (n.isString(e)) | |
| return f(e) ? e : l(e, t) | |
| } | |
| , | |
| t.getAvatarUri = function(e) { | |
| if (n.isString(e)) | |
| return i.getAvatarEndPoint(e) | |
| } | |
| , | |
| t.isGuest = function(e) { | |
| return a.test(e.id()) | |
| } | |
| , | |
| t.isGuestId = function(e) { | |
| return a.test(e) | |
| } | |
| , | |
| t.getTypeFromKey = function(e) { | |
| var t = u.exec(e); | |
| if (t) | |
| return t[1] | |
| } | |
| , | |
| t.isPstn = function(e) { | |
| return !!e.phoneNumbers.size() && e.id() === e.phoneNumbers(0).telUri() | |
| } | |
| , | |
| t.isPstnId = function(e) { | |
| return /^(\+)?\d+$/.test(e) | |
| } | |
| , | |
| t.isEchoContact = function(e) { | |
| return t.isEchoContactId(e.id()) | |
| } | |
| , | |
| t.isEchoContactId = function(e) { | |
| return e === s.ECHO_CONTACT_ID | |
| } | |
| , | |
| t.canRequestContactAuthorization = function(e) { | |
| return !t.isPstn(e) && !e.isBlocked() | |
| } | |
| , | |
| t.canAddToChatServiceContactList = function(e) { | |
| return e._authorization() === o.AUTHORIZED && !e.isBlocked() && !t.isPstn(e) && !t.isEchoContact(e) | |
| } | |
| , | |
| t.canRemoveContactFromChatServiceContactList = function(e) { | |
| return !t.isPstn(e) && !t.isEchoContact(e) | |
| } | |
| }), | |
| define("jSkype/services/contacts/serviceSettings", ["require", "exports", "module", "jSkype/settings"], function(e, t) { | |
| function r(e, n, r, i) { | |
| return i = i || t.reasons.default, | |
| e.replace(t.tokens.id, encodeURIComponent(n)).replace(t.tokens.version, r).replace(t.tokens.reason, i) | |
| } | |
| function i(e) { | |
| return t.name + "-" + e | |
| } | |
| function s(e) { | |
| return "${" + e + "}" | |
| } | |
| var n = e("jSkype/settings"); | |
| t.getHost = function() { | |
| return n.settings.contactsProxyService.host | |
| } | |
| , | |
| t.getMyContactsEndpoint = function(e, t, i) { | |
| return r(n.settings.contactsProxyService.myContactsEndpoint, e, t, i) | |
| } | |
| , | |
| t.getMyDeltaContactsEndpoint = function(e, t, i) { | |
| return r(n.settings.contactsProxyService.myDeltaContactsEndpoint, e, t, i) | |
| } | |
| , | |
| t.getDeleteContactEndpoint = function(e, r, i, s) { | |
| return n.settings.contactsProxyService.deleteContactEndpoint.replace(t.tokens.version, s).replace(t.tokens.id, encodeURIComponent(e)).replace(t.tokens.contactType, i).replace(t.tokens.contactId, r) | |
| } | |
| , | |
| t.getRetryPolicy = function() { | |
| return n.settings.contactsProxyService.retry | |
| } | |
| , | |
| t.name = "CBLProxy", | |
| t.version = "v1", | |
| t.actions = { | |
| getMyContacts: i("getMyContacts"), | |
| deleteContact: i("deleteContact") | |
| }, | |
| t.reasons = { | |
| "default": "default", | |
| notification: "notification" | |
| }, | |
| t.tokens = { | |
| id: s("id"), | |
| contactId: s("contactId"), | |
| contactType: s("contactType"), | |
| version: s("version"), | |
| reason: s("reason") | |
| } | |
| }), | |
| define("jSkype/services/webapi/serviceSettings", ["require", "exports", "module", "jSkype/settings"], function(e, t) { | |
| var n = e("jSkype/settings"); | |
| t.getHost = function() { | |
| return n.settings.webApiServiceHost | |
| } | |
| }), | |
| define("jSkype/services/entitlement/serviceSettings", ["require", "exports", "module", "jSkype/settings"], function(e, t) { | |
| function r(e) { | |
| return t.name + "-" + e | |
| } | |
| function i(e) { | |
| return "${" + e + "}" | |
| } | |
| var n = e("jSkype/settings"); | |
| t.getHost = function() { | |
| return n.settings.entitlementService.host | |
| } | |
| , | |
| t.getEntitlementListingEndpoint = function(e) { | |
| return n.settings.entitlementService.listingEndpoint.replace(t.tokens.username, encodeURIComponent(e)) | |
| } | |
| , | |
| t.getEntitlementServiceEndpoint = function(e, r) { | |
| return n.settings.entitlementService.serviceEndpoint.replace(t.tokens.username, encodeURIComponent(e)).replace(t.tokens.service, r) | |
| } | |
| , | |
| t.getRetryPolicy = function() { | |
| return n.settings.entitlementService.retry | |
| } | |
| , | |
| t.name = "Entitlement", | |
| t.version = "3.0", | |
| t.serviceNames = { | |
| credit: "pstn" | |
| }, | |
| t.actions = { | |
| getEntitlementService: r("getEntitlementService") | |
| }, | |
| t.tokens = { | |
| username: i("username"), | |
| service: i("service") | |
| } | |
| }), | |
| !function(e, t, n) { | |
| typeof module != "undefined" && module.exports ? module.exports = n() : typeof define == "function" && define.amd ? define("reqwest/reqwest", n) : t[e] = n() | |
| }("reqwest", this, function() { | |
| function succeed(e) { | |
| var t = protocolRe.exec(e.url); | |
| return t = t && t[1] || context.location.protocol, | |
| httpsRe.test(t) ? twoHundo.test(e.request.status) : !!e.request.response | |
| } | |
| function handleReadyState(e, t, n) { | |
| return function() { | |
| if (e._aborted) | |
| return n(e.request); | |
| if (e._timedOut) | |
| return n(e.request, "Request is aborted: timeout"); | |
| e.request && e.request[readyState] == 4 && (e.request.onreadystatechange = noop, | |
| succeed(e) ? t(e.request) : n(e.request)) | |
| } | |
| } | |
| function setHeaders(e, t) { | |
| var n = t.headers || {}, r; | |
| n.Accept = n.Accept || defaultHeaders.accept[t.type] || defaultHeaders.accept["*"]; | |
| var i = typeof FormData != "undefined" && t.data instanceof FormData; | |
| !t.crossOrigin && !n[requestedWith] && (n[requestedWith] = defaultHeaders.requestedWith), | |
| !n[contentType] && !i && (n[contentType] = t.contentType || defaultHeaders.contentType); | |
| for (r in n) | |
| n.hasOwnProperty(r) && "setRequestHeader" in e && e.setRequestHeader(r, n[r]) | |
| } | |
| function setCredentials(e, t) { | |
| typeof t.withCredentials != "undefined" && typeof e.withCredentials != "undefined" && (e.withCredentials = !!t.withCredentials) | |
| } | |
| function generalCallback(e) { | |
| lastValue = e | |
| } | |
| function urlappend(e, t) { | |
| return e + (/\?/.test(e) ? "&" : "?") + t | |
| } | |
| function handleJsonp(e, t, n, r) { | |
| var i = uniqid++ | |
| , s = e.jsonpCallback || "callback" | |
| , o = e.jsonpCallbackName || reqwest.getcallbackPrefix(i) | |
| , u = new RegExp("((^|\\?|&)" + s + ")=([^&]+)") | |
| , a = r.match(u) | |
| , f = doc.createElement("script") | |
| , l = 0 | |
| , c = navigator.userAgent.indexOf("MSIE 10.0") !== -1; | |
| return a ? a[3] === "?" ? r = r.replace(u, "$1=" + o) : o = a[3] : r = urlappend(r, s + "=" + o), | |
| context[o] = generalCallback, | |
| f.type = "text/javascript", | |
| f.src = r, | |
| f.async = !0, | |
| typeof f.onreadystatechange != "undefined" && !c && (f.htmlFor = f.id = "_reqwest_" + i), | |
| f.onload = f.onreadystatechange = function() { | |
| if (f[readyState] && f[readyState] !== "complete" && f[readyState] !== "loaded" || l) | |
| return !1; | |
| f.onload = f.onreadystatechange = null , | |
| f.onclick && f.onclick(), | |
| t(lastValue), | |
| lastValue = undefined, | |
| head.removeChild(f), | |
| l = 1 | |
| } | |
| , | |
| head.appendChild(f), | |
| { | |
| abort: function() { | |
| f.onload = f.onreadystatechange = null , | |
| n({}, "Request is aborted: timeout", {}), | |
| lastValue = undefined, | |
| head.removeChild(f), | |
| l = 1 | |
| } | |
| } | |
| } | |
| function getRequest(e, t) { | |
| var n = this.o, r = (n.method || "GET").toUpperCase(), i = typeof n == "string" ? n : n.url, s = n.processData !== !1 && n.data && typeof n.data != "string" ? reqwest.toQueryString(n.data) : n.data || null , o, u = !1; | |
| return (n["type"] == "jsonp" || r == "GET") && s && (i = urlappend(i, s), | |
| s = null ), | |
| n["type"] == "jsonp" ? handleJsonp(n, e, t, i) : (o = n.xhr && n.xhr(n) || xhr(n), | |
| o.open(r, i, n.async === !1 ? !1 : !0), | |
| setHeaders(o, n), | |
| setCredentials(o, n), | |
| context[xDomainRequest] && o instanceof context[xDomainRequest] ? (o.onload = e, | |
| o.onerror = t, | |
| o.onprogress = function() {} | |
| , | |
| u = !0) : o.onreadystatechange = handleReadyState(this, e, t), | |
| n.before && n.before(o), | |
| u ? setTimeout(function() { | |
| o.send(s) | |
| }, 200) : o.send(s), | |
| o) | |
| } | |
| function Reqwest(e, t) { | |
| this.o = e, | |
| this.fn = t, | |
| init.apply(this, arguments) | |
| } | |
| function setType(e) { | |
| if (e === null ) | |
| return undefined; | |
| if (e.match("json")) | |
| return "json"; | |
| if (e.match("javascript")) | |
| return "js"; | |
| if (e.match("text")) | |
| return "html"; | |
| if (e.match("xml")) | |
| return "xml" | |
| } | |
| function init(o, fn) { | |
| function complete(e) { | |
| o.timeout && clearTimeout(self.timeout), | |
| self.timeout = null ; | |
| while (self._completeHandlers.length > 0) | |
| self._completeHandlers.shift()(e) | |
| } | |
| function success(resp) { | |
| var type = o.type || resp && setType(resp.getResponseHeader("Content-Type")); | |
| resp = type !== "jsonp" ? self.request : resp; | |
| var filteredResponse = globalSetupOptions.dataFilter(resp.responseText, type) | |
| , r = filteredResponse; | |
| try { | |
| resp.responseText = r | |
| } catch (e) {} | |
| if (r) | |
| switch (type) { | |
| case "json": | |
| try { | |
| resp = context.JSON ? context.JSON.parse(r) : eval("(" + r + ")") | |
| } catch (err) { | |
| return error(resp, "Could not parse JSON in response", err) | |
| } | |
| break; | |
| case "js": | |
| resp = eval(r); | |
| break; | |
| case "html": | |
| resp = r; | |
| break; | |
| case "xml": | |
| resp = resp.responseXML && resp.responseXML.parseError && resp.responseXML.parseError.errorCode && resp.responseXML.parseError.reason ? null : resp.responseXML | |
| } | |
| self._responseArgs.resp = resp, | |
| self._fulfilled = !0, | |
| fn(resp), | |
| self._successHandler(resp); | |
| while (self._fulfillmentHandlers.length > 0) | |
| resp = self._fulfillmentHandlers.shift()(resp); | |
| complete(resp) | |
| } | |
| function timedOut() { | |
| self._timedOut = !0, | |
| self.request.abort() | |
| } | |
| function error(e, t, n) { | |
| e = self.request, | |
| self._responseArgs.resp = e, | |
| self._responseArgs.msg = t, | |
| self._responseArgs.t = n, | |
| self._erred = !0; | |
| while (self._errorHandlers.length > 0) | |
| self._errorHandlers.shift()(e, t, n); | |
| complete(e) | |
| } | |
| this.url = typeof o == "string" ? o : o.url, | |
| this.timeout = null , | |
| this._fulfilled = !1, | |
| this._successHandler = function() {} | |
| , | |
| this._fulfillmentHandlers = [], | |
| this._errorHandlers = [], | |
| this._completeHandlers = [], | |
| this._erred = !1, | |
| this._responseArgs = {}; | |
| var self = this; | |
| fn = fn || function() {} | |
| , | |
| o.timeout && (this.timeout = setTimeout(function() { | |
| timedOut() | |
| }, o.timeout)), | |
| o.success && (this._successHandler = function() { | |
| o.success.apply(o, arguments) | |
| } | |
| ), | |
| o.error && this._errorHandlers.push(function() { | |
| o.error.apply(o, arguments) | |
| }), | |
| o.complete && this._completeHandlers.push(function() { | |
| o.complete.apply(o, arguments) | |
| }), | |
| this.request = getRequest.call(this, success, error) | |
| } | |
| function reqwest(e, t) { | |
| return new Reqwest(e,t) | |
| } | |
| function normalize(e) { | |
| return e ? e.replace(/\r?\n/g, "\r\n") : "" | |
| } | |
| function serial(e, t) { | |
| var n = e.name, r = e.tagName.toLowerCase(), i = function(e) { | |
| e && !e.disabled && t(n, normalize(e.attributes.value && e.attributes.value.specified ? e.value : e.text)) | |
| } | |
| , s, o, u, a; | |
| if (e.disabled || !n) | |
| return; | |
| switch (r) { | |
| case "input": | |
| /reset|button|image|file/i.test(e.type) || (s = /checkbox/i.test(e.type), | |
| o = /radio/i.test(e.type), | |
| u = e.value, | |
| (!s && !o || e.checked) && t(n, normalize(s && u === "" ? "on" : u))); | |
| break; | |
| case "textarea": | |
| t(n, normalize(e.value)); | |
| break; | |
| case "select": | |
| if (e.type.toLowerCase() === "select-one") | |
| i(e.selectedIndex >= 0 ? e.options[e.selectedIndex] : null ); | |
| else | |
| for (a = 0; e.length && a < e.length; a++) | |
| e.options[a].selected && i(e.options[a]) | |
| } | |
| } | |
| function eachFormElement() { | |
| var e = this, t, n, r = function(t, n) { | |
| var r, i, s; | |
| for (r = 0; r < n.length; r++) { | |
| s = t[byTag](n[r]); | |
| for (i = 0; i < s.length; i++) | |
| serial(s[i], e) | |
| } | |
| } | |
| ; | |
| for (n = 0; n < arguments.length; n++) | |
| t = arguments[n], | |
| /input|select|textarea/i.test(t.tagName) && serial(t, e), | |
| r(t, ["input", "select", "textarea"]) | |
| } | |
| function serializeQueryString() { | |
| return reqwest.toQueryString(reqwest.serializeArray.apply(null , arguments)) | |
| } | |
| function serializeHash() { | |
| var e = {}; | |
| return eachFormElement.apply(function(t, n) { | |
| t in e ? (e[t] && !isArray(e[t]) && (e[t] = [e[t]]), | |
| e[t].push(n)) : e[t] = n | |
| }, arguments), | |
| e | |
| } | |
| function buildParams(e, t, n, r) { | |
| var i, s, o, u = /\[\]$/; | |
| if (isArray(t)) | |
| for (s = 0; t && s < t.length; s++) | |
| o = t[s], | |
| n || u.test(e) ? r(e, o) : buildParams(e + "[" + (typeof o == "object" ? s : "") + "]", o, n, r); | |
| else if (t && t.toString() === "[object Object]") | |
| for (i in t) | |
| buildParams(e + "[" + i + "]", t[i], n, r); | |
| else | |
| r(e, t) | |
| } | |
| var context = this; | |
| if ("window" in context) | |
| var doc = document | |
| , byTag = "getElementsByTagName" | |
| , head = doc[byTag]("head")[0]; | |
| else { | |
| var XHR2; | |
| try { | |
| XHR2 = require("xhr2") | |
| } catch (ex) { | |
| throw new Error("Peer dependency `xhr2` required! Please npm install xhr2") | |
| } | |
| } | |
| var httpsRe = /^http/, protocolRe = /(^\w+):\/\//, twoHundo = /^(20\d|1223)$/, readyState = "readyState", contentType = "Content-Type", requestedWith = "X-Requested-With", uniqid = 0, callbackPrefix = "reqwest_" + +(new Date), lastValue, xmlHttpRequest = "XMLHttpRequest", xDomainRequest = "XDomainRequest", noop = function() {} | |
| , isArray = typeof Array.isArray == "function" ? Array.isArray : function(e) { | |
| return e instanceof Array | |
| } | |
| , defaultHeaders = { | |
| contentType: "application/x-www-form-urlencoded", | |
| requestedWith: xmlHttpRequest, | |
| accept: { | |
| "*": "text/javascript, text/html, application/xml, text/xml, */*", | |
| xml: "application/xml, text/xml", | |
| html: "text/html", | |
| text: "text/plain", | |
| json: "application/json, text/javascript", | |
| js: "application/javascript, text/javascript" | |
| } | |
| }, xhr = function(e) { | |
| if (e.crossOrigin === !0) { | |
| var t = context[xmlHttpRequest] ? new XMLHttpRequest : null ; | |
| if (t && "withCredentials" in t) | |
| return t; | |
| if (context[xDomainRequest]) | |
| return new XDomainRequest; | |
| throw new Error("Browser does not support cross-origin requests") | |
| } | |
| return context[xmlHttpRequest] ? new XMLHttpRequest : XHR2 ? new XHR2 : new ActiveXObject("Microsoft.XMLHTTP") | |
| } | |
| , globalSetupOptions = { | |
| dataFilter: function(e) { | |
| return e | |
| } | |
| }; | |
| return Reqwest.prototype = { | |
| abort: function() { | |
| this._aborted = !0, | |
| this.request.abort() | |
| }, | |
| retry: function() { | |
| init.call(this, this.o, this.fn) | |
| }, | |
| then: function(e, t) { | |
| return e = e || function() {} | |
| , | |
| t = t || function() {} | |
| , | |
| this._fulfilled ? this._responseArgs.resp = e(this._responseArgs.resp) : this._erred ? t(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t) : (this._fulfillmentHandlers.push(e), | |
| this._errorHandlers.push(t)), | |
| this | |
| }, | |
| always: function(e) { | |
| return this._fulfilled || this._erred ? e(this._responseArgs.resp) : this._completeHandlers.push(e), | |
| this | |
| }, | |
| fail: function(e) { | |
| return this._erred ? e(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t) : this._errorHandlers.push(e), | |
| this | |
| }, | |
| "catch": function(e) { | |
| return this.fail(e) | |
| } | |
| }, | |
| reqwest.serializeArray = function() { | |
| var e = []; | |
| return eachFormElement.apply(function(t, n) { | |
| e.push({ | |
| name: t, | |
| value: n | |
| }) | |
| }, arguments), | |
| e | |
| } | |
| , | |
| reqwest.serialize = function() { | |
| if (arguments.length === 0) | |
| return ""; | |
| var e, t, n = Array.prototype.slice.call(arguments, 0); | |
| return e = n.pop(), | |
| e && e.nodeType && n.push(e) && (e = null ), | |
| e && (e = e.type), | |
| e == "map" ? t = serializeHash : e == "array" ? t = reqwest.serializeArray : t = serializeQueryString, | |
| t.apply(null , n) | |
| } | |
| , | |
| reqwest.toQueryString = function(e, t) { | |
| var n, r, i = t || !1, s = [], o = encodeURIComponent, u = function(e, t) { | |
| t = "function" == typeof t ? t() : t == null ? "" : t, | |
| s[s.length] = o(e) + "=" + o(t) | |
| } | |
| ; | |
| if (isArray(e)) | |
| for (r = 0; e && r < e.length; r++) | |
| u(e[r].name, e[r].value); | |
| else | |
| for (n in e) | |
| e.hasOwnProperty(n) && buildParams(n, e[n], i, u); | |
| return s.join("&").replace(/%20/g, "+") | |
| } | |
| , | |
| reqwest.getcallbackPrefix = function() { | |
| return callbackPrefix | |
| } | |
| , | |
| reqwest.compat = function(e, t) { | |
| return e && (e.type && (e.method = e.type) && delete e.type, | |
| e.dataType && (e.type = e.dataType), | |
| e.jsonpCallback && (e.jsonpCallbackName = e.jsonpCallback) && delete e.jsonpCallback, | |
| e.jsonp && (e.jsonpCallback = e.jsonp)), | |
| new Reqwest(e,t) | |
| } | |
| , | |
| reqwest.ajaxSetup = function(e) { | |
| e = e || {}; | |
| for (var t in e) | |
| globalSetupOptions[t] = e[t] | |
| } | |
| , | |
| reqwest | |
| }), | |
| define("reqwest", ["reqwest/reqwest"], function(e) { | |
| return e | |
| }), | |
| define("jSkype/services/serviceAccessLayer/builders/uriBuilder", [], function() { | |
| function e() { | |
| var e = { | |
| fqdn: null , | |
| resource: null , | |
| queryParams: null | |
| }; | |
| this.build = function() { | |
| var t = e.fqdn; | |
| return t += e.resource !== null ? e.resource : "", | |
| t += e.queryParams !== null ? r(e.queryParams) : "", | |
| t | |
| } | |
| , | |
| this.setDomain = function(t) { | |
| var n = typeof t == "string"; | |
| if (!n || t === "") | |
| throw new TypeError("domain must be a string"); | |
| e.fqdn = t | |
| } | |
| , | |
| this.setResource = function(t) { | |
| e.fqdn.substring(0, 6) === "skype:" ? e.resource = t : e.resource = n(e.fqdn, t) | |
| } | |
| , | |
| this.setQueryParams = function(t) { | |
| var n = {}.toString.call(t) === "[object Object]"; | |
| if (!n && t !== undefined) | |
| throw new Error("queryParams must be an object"); | |
| e.queryParams = t || {} | |
| } | |
| } | |
| function t(e) { | |
| var t = /^ *$/; | |
| if (e !== null && e !== undefined) | |
| return e.toString().replace(t, "") | |
| } | |
| function n(e, t) { | |
| var n = "/" | |
| , r = t[0] === n; | |
| return e[e.length - 1] === n ? t = r ? t.substring(1) : t : t = r ? t : n + t, | |
| t | |
| } | |
| function r(e) { | |
| function i(r) { | |
| var i = t(e[r]); | |
| i && n.push(r + "=" + i) | |
| } | |
| var n = [] | |
| , r = ""; | |
| for (var s in e) | |
| e.hasOwnProperty(s) && i(s); | |
| return n.length > 0 && (r = "?" + n.join("&")), | |
| r | |
| } | |
| return e | |
| }), | |
| define("jSkype/services/serviceAccessLayer/builders/headerBuilder", [], function() { | |
| function e() { | |
| var e = {}; | |
| this.get = function(t) { | |
| return t ? e[t] : e | |
| } | |
| , | |
| this.set = function(t, n) { | |
| var r = /\s/; | |
| if (!t || !n) | |
| throw new Error('incorrect number of arguments supplied - expecting "key" and "value"'); | |
| if (typeof t != "string" || typeof n != "string") | |
| throw new TypeError('"key" and "value" arguments must be of type String'); | |
| if (r.test(t)) | |
| throw new SyntaxError("header name cannot contain any whitespace"); | |
| e[t] = n | |
| } | |
| , | |
| this.populate = function(e) { | |
| function r() { | |
| for (var t in e) | |
| e.hasOwnProperty(t) && n.set(t, e[t]) | |
| } | |
| var n = this; | |
| t(e) && r() | |
| } | |
| , | |
| this.build = function(t) { | |
| function n() { | |
| for (var n in e) | |
| e.hasOwnProperty(n) && t(n, e[n]) | |
| } | |
| if (typeof t != "function") | |
| throw new TypeError("argument must be a callback function"); | |
| n() | |
| } | |
| } | |
| function t(e) { | |
| var t = {}.toString.call(e) === "[object Object]"; | |
| return !!e && t | |
| } | |
| return e | |
| }), | |
| define("jSkype/services/serviceAccessLayer/builders/factory", ["require", "jSkype/services/serviceAccessLayer/builders/uriBuilder", "jSkype/services/serviceAccessLayer/builders/headerBuilder"], function(e) { | |
| var t = e("jSkype/services/serviceAccessLayer/builders/uriBuilder") | |
| , n = e("jSkype/services/serviceAccessLayer/builders/headerBuilder") | |
| , r = { | |
| uriBuilder: function() { | |
| return new t | |
| }, | |
| headerBuilder: function() { | |
| return new n | |
| } | |
| } | |
| , i = { | |
| get: function(e) { | |
| var t = r[e]; | |
| if (typeof t == "function") | |
| return t() | |
| } | |
| }; | |
| return i | |
| }), | |
| define("vendor/i18n/plurals", [], function() { | |
| function e() { | |
| function u(e, i) { | |
| i || (i = s); | |
| var u, a = null , f = ""; | |
| for (u in o) | |
| o[u].languages.indexOf(i) !== -1 && (a = u); | |
| switch (a) { | |
| case "group0": | |
| f = e === 1 ? t : n; | |
| break; | |
| case "group1": | |
| f = e === 1 ? t : r; | |
| break; | |
| case "group2": | |
| f = e > 1 ? r : t; | |
| break; | |
| case "group3": | |
| f = e % 10 === 1 && e % 100 !== 11 ? t : e === 0 ? n : r; | |
| break; | |
| case "group4": | |
| f = e === 1 || e === 11 ? t : e === 2 || e === 12 ? n : r; | |
| break; | |
| case "group5": | |
| f = e === 1 ? t : e === 0 || e % 100 > 0 && e % 100 < 20 ? n : r; | |
| break; | |
| case "group6": | |
| f = e % 10 === 1 && e % 100 !== 11 ? t : e % 10 >= 2 && (e % 100 < 10 || e % 100 >= 20) ? r : n; | |
| break; | |
| case "group7": | |
| f = e % 10 === 1 && e % 100 !== 11 ? t : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? n : r; | |
| break; | |
| case "group8": | |
| f = e === 1 ? t : e >= 2 && e <= 4 ? n : r; | |
| break; | |
| case "group9": | |
| f = e === 1 ? t : e % 10 >= 2 && e % 10 <= 4 && (e % 100 < 10 || e % 100 >= 20) ? n : r; | |
| break; | |
| case "group11": | |
| f = e === 1 ? t : e >= 2 && e <= 10 ? n : r; | |
| break; | |
| case "group12": | |
| f = e === 1 ? t : e === 2 ? n : r; | |
| break; | |
| default: | |
| f = "" | |
| } | |
| return f | |
| } | |
| function a(e) { | |
| s = e | |
| } | |
| var e, t = "", n = "_few", r = "_many", i = { | |
| af: "af", | |
| am: "am", | |
| ar: "ar", | |
| as: "as", | |
| az: "az", | |
| be: "be", | |
| bg: "bg", | |
| bn: "bn", | |
| bs: "bs", | |
| chr: "chr", | |
| ca: "ca", | |
| cs: "cs", | |
| cy: "cy", | |
| da: "da", | |
| de: "de", | |
| el: "el", | |
| en: "en", | |
| es: "es", | |
| et: "et", | |
| eu: "eu", | |
| fa: "fa", | |
| fi: "fi", | |
| fil: "fil", | |
| fr: "fr", | |
| ga: "ga", | |
| gd: "gd", | |
| gl: "gl", | |
| gu: "gu", | |
| ha: "ha", | |
| he: "he", | |
| hi: "hi", | |
| hr: "hr", | |
| hu: "hu", | |
| hy: "hy", | |
| id: "id", | |
| ig: "ig", | |
| is: "is", | |
| it: "it", | |
| iw: "iw", | |
| ja: "ja", | |
| ka: "ka", | |
| kk: "kk", | |
| km: "km", | |
| kn: "kn", | |
| ko: "ko", | |
| kok: "kok", | |
| ku: "ku", | |
| ky: "ky", | |
| lb: "lb", | |
| lt: "lt", | |
| lv: "lv", | |
| mi: "mi", | |
| ml: "ml", | |
| mn: "mn", | |
| mr: "mr", | |
| ms: "ms", | |
| ne: "ne", | |
| nl: "nl", | |
| nn: "nn", | |
| nb: "nb", | |
| no: "no", | |
| nso: "nso", | |
| or: "or", | |
| pa: "pa", | |
| pl: "pl", | |
| prs: "prs", | |
| pt_br: "pt-br", | |
| pt_pt: "pt-pt", | |
| qps: "qps", | |
| qut: "qut", | |
| quz: "quz", | |
| ro: "ro", | |
| ru: "ru", | |
| rw: "rw", | |
| sd: "sd", | |
| si: "si", | |
| sl: "sl", | |
| sk: "sk", | |
| sq: "sq", | |
| sr: "sr", | |
| sv: "sv", | |
| sw: "sw", | |
| ta: "ta", | |
| te: "te", | |
| tg: "tg", | |
| th: "th", | |
| ti: "ti", | |
| tk: "tk", | |
| tn: "tn", | |
| tr_tr: "tr-tr", | |
| tt: "tt", | |
| ug: "ug", | |
| uk: "uk", | |
| ur: "ur", | |
| uz: "uz", | |
| vi: "vi", | |
| wo: "wo", | |
| xh: "xh", | |
| yo: "yo", | |
| zh: "zh", | |
| zu: "zu" | |
| }, s = i.en, o = { | |
| group0: { | |
| languages: [i.ja, i.id, i.ko, i.tr_tr, i.vi, i.zh, i.az, i.ig, i.fa, i.ka, i.km, i.kn, i.ms, i.prs, i.th, i.tt, i.ug, i.wo, i.yo] | |
| }, | |
| group1: { | |
| languages: [i.bg, i.ca, i.cy, i.da, i.de, i.el, i.en, i.es, i.et, i.fi, i.he, i.hu, i.it, i.iw, i.nb, i.nl, i.no, i.pt_pt, i.qps, i.sv, i.af, i.as, i.bn, i.chr, i.eu, i.gl, i.gu, i.ha, i.hy, i.is, i.kk, i.kok, i.ku, i.ky, i.lb, i.mi, i.ml, i.mn, i.mr, i.ne, i.nn, i.or, i.pa, i.qut, i.quz, i.rw, i.sd, i.si, i.sq, i.sw, i.ta, i.te, i.tk, i.tn, i.ur, i.xh, i.zu] | |
| }, | |
| group2: { | |
| languages: [i.fr, i.pt_br, i.am, i.fil, i.hi, i.nso, i.tg, i.ti, i.uz] | |
| }, | |
| group3: { | |
| languages: [i.lv] | |
| }, | |
| group4: { | |
| languages: [i.gd] | |
| }, | |
| group5: { | |
| languages: [i.ro] | |
| }, | |
| group6: { | |
| languages: [i.lt] | |
| }, | |
| group7: { | |
| languages: [i.ru, i.uk, i.hr, i.sr, i.be, i.bs, i.sl] | |
| }, | |
| group8: { | |
| languages: [i.cs, i.sk] | |
| }, | |
| group9: { | |
| languages: [i.pl] | |
| }, | |
| group11: { | |
| languages: [i.ga] | |
| }, | |
| group12: { | |
| languages: [i.ar] | |
| } | |
| }; | |
| return e = { | |
| getPluralSuffix: u, | |
| setLocale: a, | |
| pluralizationLocale: i | |
| }, | |
| e | |
| } | |
| return new e | |
| }), | |
| define("vendor/i18n/resources", ["require", "exports", "module", "lodash-compat"], function(e, t) { | |
| function i(e) { | |
| if (!e) | |
| throw new Error("[i18n / resources] Specified destination for localizations resources is not reachable") | |
| } | |
| var n = e("lodash-compat") | |
| , r = {}; | |
| t.set = function(e) { | |
| i(e), | |
| r = e | |
| } | |
| , | |
| t.merge = function(e) { | |
| i(e), | |
| r = n.merge(r, e) | |
| } | |
| , | |
| t.get = function() { | |
| return r | |
| } | |
| }), | |
| define("vendor/i18n/localization", ["require", "exports", "module", "vendor/i18n/plurals", "vendor/i18n/resources"], function(e, t) { | |
| function i(e) { | |
| var t = r.get() | |
| , n = t && t[e] || e; | |
| return n | |
| } | |
| var n = e("vendor/i18n/plurals") | |
| , r = e("vendor/i18n/resources"); | |
| t.fetch = function(e) { | |
| if (typeof e != "object") | |
| throw new Error("[i18n / localization] Argument must be type of object"); | |
| var t = e.key, r, s, o, u, a; | |
| if (!t) | |
| throw new Error("[i18n / localization] Missing key"); | |
| r = i(t), | |
| e.count !== undefined && (s = e.count, | |
| e.params = e.params || {}, | |
| e.params.count = s, | |
| o = n.getPluralSuffix(s, e.locale), | |
| t += o); | |
| if (e.params) { | |
| r = i(t); | |
| for (u in e.params) | |
| if (e.params.hasOwnProperty(u)) { | |
| a = e.params[u]; | |
| if (typeof a == "function") | |
| throw new Error("[i18n / localization] Replacement value must not be a function"); | |
| r = r.replace(new RegExp("{" + u + "}","g"), a) | |
| } | |
| } | |
| return r | |
| } | |
| }), | |
| define("services/g11n/default", [], function() { | |
| return { | |
| calendar: { | |
| days: { | |
| names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], | |
| namesAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] | |
| }, | |
| months: { | |
| names: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | |
| namesAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] | |
| }, | |
| firstDay: 0 | |
| }, | |
| time: { | |
| AM: "am", | |
| PM: "pm", | |
| separator: ":", | |
| format: { | |
| duration: "mm:ss", | |
| "short": "h:mm tt", | |
| "long": "h:mm:ss tt" | |
| } | |
| }, | |
| date: { | |
| separator: "/", | |
| format: { | |
| dayMonth: "M/d", | |
| dayMonthYear: "M/d/yy", | |
| dayAbbr: "dAbbr", | |
| dayName: "dName", | |
| dateAbbr: "mAbbr d yyyy", | |
| shortDateAbbr: "mAbbr d" | |
| } | |
| }, | |
| dir: "ltr" | |
| } | |
| }), | |
| define("services/g11n/formatter", [], function() { | |
| function n(e) { | |
| return /HH|H|hh|h/.test(e) | |
| } | |
| function r(e) { | |
| return /mm|m/.test(e) | |
| } | |
| var e = /dName|dAbbr|mName|mAbbr|dd|d|MM|M|yyyy|yy|HH|H|hh|h|mm|m|tt|ss|s|'[^']*'|'[^']*'/g | |
| , t = function(t, n, r) { | |
| var i = r.calendar | |
| , s = r.time | |
| , o = i.days | |
| , u = i.months; | |
| return n.replace(e, function(e) { | |
| var n; | |
| switch (e) { | |
| case "dName": | |
| n = o.names[t.getDay()]; | |
| break; | |
| case "dAbbr": | |
| n = o.namesAbbr[t.getDay()]; | |
| break; | |
| case "mName": | |
| n = u.names[t.getMonth()]; | |
| break; | |
| case "mAbbr": | |
| n = u.namesAbbr[t.getMonth()]; | |
| break; | |
| case "tt": | |
| n = t.getHours() < 12 ? s.AM : s.PM; | |
| break; | |
| case "yyyy": | |
| n = t.getFullYear(); | |
| break; | |
| case "yy": | |
| n = t.getFullYear() % 100; | |
| break; | |
| case "d": | |
| n = t.getDate(); | |
| break; | |
| case "dd": | |
| n = t.getDate(), | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "M": | |
| n = t.getMonth() + 1; | |
| break; | |
| case "MM": | |
| n = t.getMonth() + 1, | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "h": | |
| n = t.getHours() % 12 || 12; | |
| break; | |
| case "hh": | |
| n = t.getHours() % 12 || 12, | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "H": | |
| n = t.getHours(); | |
| break; | |
| case "HH": | |
| n = t.getHours(), | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "m": | |
| n = t.getMinutes(); | |
| break; | |
| case "mm": | |
| n = t.getMinutes(), | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "s": | |
| n = t.getSeconds(); | |
| break; | |
| case "ss": | |
| n = t.getSeconds(), | |
| n.toString().length === 1 && (n = "0" + n) | |
| } | |
| return n !== undefined ? n : e.slice(1, e.length - 1) | |
| }) | |
| } | |
| , i = function(t, i) { | |
| var s, o; | |
| return n(i) && (s = Math.floor(t / 60 / 60), | |
| t -= s * 60 * 60), | |
| r(i) && (o = Math.floor(t / 60), | |
| t -= o * 60), | |
| i.replace(e, function(e) { | |
| var n; | |
| switch (e) { | |
| case "h": | |
| n = s; | |
| break; | |
| case "hh": | |
| n = s, | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "H": | |
| n = s; | |
| break; | |
| case "HH": | |
| n = s, | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "m": | |
| n = o; | |
| break; | |
| case "mm": | |
| n = o, | |
| n.toString().length === 1 && (n = "0" + n); | |
| break; | |
| case "s": | |
| n = t; | |
| break; | |
| case "ss": | |
| n = t, | |
| n.toString().length === 1 && (n = "0" + n) | |
| } | |
| return n !== undefined ? n : e.slice(1, e.length - 1) | |
| }) | |
| } | |
| ; | |
| return { | |
| formatDate: t, | |
| formatDuration: i | |
| } | |
| }), | |
| define("browser/document", [], function() { | |
| return document | |
| }), | |
| define("services/g11n/globalization", ["require", "exports", "module", "services/g11n/default", "services/g11n/formatter", "browser/document"], function(e, t) { | |
| function s(e, t) { | |
| e.dir || (e.dir = t) | |
| } | |
| var n = e("services/g11n/default") | |
| , r = e("services/g11n/formatter") | |
| , i = e("browser/document"); | |
| t.init = function(e) { | |
| n = e | |
| } | |
| , | |
| t.initLocaleDirection = function(e) { | |
| var t = i.documentElement; | |
| t.dir ? s(e, t.dir) : n.dir && s(e, n.dir) | |
| } | |
| , | |
| t.formatDate = function(e, t) { | |
| var i = n.time.format[t]; | |
| i || (i = n.date.format[t]); | |
| if (!i) | |
| throw new Error("No format found with a key:" + t + "in settings of:" + n.locale); | |
| return r.formatDate(e, i, n) | |
| } | |
| , | |
| t.formatDuration = function(e, t) { | |
| var i = n.time.format[t]; | |
| if (!i) | |
| throw new Error("No format found with a key:" + t + "in settings of:" + n.locale); | |
| return r.formatDuration(e, i) | |
| } | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-pubsub/lib/pubSub", ["require", "exports"], e) | |
| }(function(e, t) { | |
| function n(e) { | |
| for (var t in e) | |
| if (!e[t]) | |
| throw new Error(t + " is mandatory") | |
| } | |
| function r(e, t) { | |
| return t && t.indexOf(e) >= 0 | |
| } | |
| function i(e, t) { | |
| if (!t || !r(e, t)) | |
| return; | |
| t.splice(t.indexOf(e), 1) | |
| } | |
| var s = function() { | |
| function e() { | |
| this.callbacks = {} | |
| } | |
| return e.prototype.subscribe = function(e, t) { | |
| n({ | |
| eventName: e, | |
| callback: t | |
| }), | |
| this.callbacks[e] = this.callbacks[e] || [], | |
| r(t, this.callbacks[e]) || this.callbacks[e].push(t) | |
| } | |
| , | |
| e.prototype.unsubscribe = function(e, t) { | |
| n({ | |
| eventName: e, | |
| callback: t | |
| }); | |
| var r = this.callbacks[e]; | |
| i(t, r) | |
| } | |
| , | |
| e.prototype.publish = function(e, t) { | |
| n({ | |
| eventName: e | |
| }); | |
| if (this.callbacks[e]) { | |
| var r = this.callbacks[e].slice(0); | |
| for (var i = r.length - 1; i >= 0; i--) | |
| r[i](t) | |
| } | |
| } | |
| , | |
| e.prototype.unsubscribeAll = function() { | |
| this.callbacks = {} | |
| } | |
| , | |
| e | |
| }(); | |
| t.__esModule = !0, | |
| t["default"] = s | |
| }), | |
| define("swx-pubsub", ["swx-pubsub/lib/pubSub"], function(e) { | |
| return e | |
| }), | |
| define("services/pubSub/pubSub", ["require", "lodash-compat", "swx-pubsub"], function(e) { | |
| var t = e("lodash-compat") | |
| , n = e("swx-pubsub").default | |
| , r = new n; | |
| return t.bindAll(r, "subscribe", "unsubscribe", "publish", "unsubscribeAll"), | |
| r | |
| }), | |
| define("utils/chat/dateTime", ["require", "vendor/i18n/localization", "services/g11n/globalization", "constants/common", "browser/window", "services/pubSub/pubSub"], function(e) { | |
| function d(e) { | |
| return e === 0 || e > 0 | |
| } | |
| function v(e, t) { | |
| var r = p.getDate(e); | |
| return n.formatDate(r, t) | |
| } | |
| function m(e, t) { | |
| var n = l.time.SHORT | |
| , r = e < E(6, t) | |
| , i = e < t; | |
| return r ? n = l.date.DAY_MONTH : i && (n = l.date.DAY_ABBREVIATION), | |
| n | |
| } | |
| function g(e) { | |
| var t = p.getDate(e).getFullYear() | |
| , n = p.getDate().getFullYear(); | |
| return t === n ? l.date.SHORT_DATE_ABBREVIATION : l.date.DATE_ABBREVIATION | |
| } | |
| function y() { | |
| var e = p.getDate() | |
| , t = e.getTime() | |
| , n = e.setHours(24, 0, 0, 0); | |
| return n - t | |
| } | |
| function b() { | |
| var e = p.getDate(); | |
| e.setHours(0, 0, 0, 0); | |
| var t = h < e; | |
| return t && (h = e), | |
| t | |
| } | |
| function w() { | |
| i.setTimeout(function() { | |
| b() && s.publish(c), | |
| w() | |
| }, y() + o) | |
| } | |
| function E(e, t) { | |
| var n = t ? p.getDate(t) : p.getDate() | |
| , r = n.setDate(n.getDate() - e); | |
| return p.getDate(r).setHours(0, 0, 0, 0) | |
| } | |
| var t = e("vendor/i18n/localization"), n = e("services/g11n/globalization"), r = e("constants/common"), i = e("browser/window"), s = e("services/pubSub/pubSub"), o = 1e3, u = o * 60, a = u * 60, f = a * 24, l = r.globalizationFormatKeys, c = r.events.system.DATE_CHANGED, h, p; | |
| return p = { | |
| amNotifyingDayChange: !1, | |
| now: function() { | |
| return i.Date.now() | |
| }, | |
| getDate: function() { | |
| return arguments.length === 1 ? new i.Date(arguments[0]) : new i.Date | |
| }, | |
| formatDate: function(e) { | |
| return d(e) ? v(e, g(e)) : "" | |
| }, | |
| formatTimestampShort: function(e) { | |
| return d(e) ? v(e, l.time.SHORT) : "" | |
| }, | |
| formatTimestamp: function(e, t) { | |
| if (d(e)) { | |
| var n = t || this.getMidnight(p.getDate().getTime()) | |
| , r = m(e, n); | |
| return v(e, r) | |
| } | |
| return "" | |
| }, | |
| getDateGroup: function(e) { | |
| if (d(e)) { | |
| var r = p.getDate(e) | |
| , i = this.getMidnight(e) | |
| , s = p.getDate().setHours(0, 0, 0, 0) | |
| , o = E(1) | |
| , u = E(7); | |
| return i === s ? t.fetch({ | |
| key: "today" | |
| }) : i === o ? t.fetch({ | |
| key: "yesterday" | |
| }) : i < u ? t.fetch({ | |
| key: "olderThanAWeek" | |
| }) : n.formatDate(r, l.date.DAY_NAME) | |
| } | |
| return "" | |
| }, | |
| getMidnight: function(e) { | |
| return d(e) ? p.getDate(e).setHours(0, 0, 0, 0) : 0 | |
| }, | |
| formatCallDuration: function(e) { | |
| return n.formatDuration(e, l.time.CALL_DURATION) | |
| }, | |
| notifyOnDayChange: function() { | |
| this.amNotifyingDayChange || (this.amNotifyingDayChange = !0, | |
| h = p.getDate(), | |
| h.setHours(0, 0, 0, 0), | |
| w()) | |
| }, | |
| getTimeSinceTimestamp: function(e, n) { | |
| n = n || {}, | |
| n.now = n.now || p.now(), | |
| n.key = n.key || "duration"; | |
| if (d(e) && d(n.now)) { | |
| var r = n.now - e; | |
| return Math.floor(r / f) > 0 ? t.fetch({ | |
| key: n.key + "_days", | |
| count: Math.floor(r / f), | |
| params: n.params | |
| }) : Math.floor(r / a) > 0 ? t.fetch({ | |
| key: n.key + "_hours", | |
| count: Math.floor(r / a), | |
| params: n.params | |
| }) : Math.floor(r / u) > 0 ? t.fetch({ | |
| key: n.key + "_minutes", | |
| count: Math.floor(r / u), | |
| params: n.params | |
| }) : t.fetch({ | |
| key: n.key + "_moment", | |
| params: n.params | |
| }) | |
| } | |
| return "" | |
| } | |
| }, | |
| p | |
| }), | |
| define("jSkype/services/serviceAccessLayer/decorations/retry", ["require", "exports", "module", "lodash-compat", "jSkype/settings", "utils/chat/dateTime"], function(e, t) { | |
| function o(e) { | |
| return i.now() - e | |
| } | |
| function u(e, t) { | |
| return e < t && r.settings.retry.enabled | |
| } | |
| function a(e, t, n) { | |
| return t === s.INCREMENTAL ? n * e : t === s.EXPONENTIAL ? Math.pow(2, e - 1) * n : n | |
| } | |
| function f(e, t, r, i) { | |
| function s() { | |
| e(++t) | |
| } | |
| n.delay(s, a(t, r, i)) | |
| } | |
| function l() { | |
| return !1 | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("jSkype/settings") | |
| , i = e("utils/chat/dateTime") | |
| , s = { | |
| INCREMENTAL: "incremental", | |
| EXPONENTIAL: "exponential", | |
| FIXED: "fixed" | |
| }; | |
| r.settings.retry = r.settings.retry || {}, | |
| t.STRATEGIES = s, | |
| t.build = function(t, n) { | |
| var a = n.limit || r.settings.retry.limit || 1 | |
| , c = n.delay || r.settings.retry.delay || 1e3 | |
| , h = n.strategy || r.settings.retry.strategy || s.FIXED | |
| , p = n.isTransientCheck || l | |
| , d = n.isSuccessCheck || l; | |
| return function(n) { | |
| return new Promise(function(e, r) { | |
| function s(i) { | |
| t(n).then(function(t) { | |
| e(l(t, i)) | |
| }, function(t) { | |
| if (d(t)) { | |
| var n = { | |
| request: t | |
| }; | |
| e(l(n, i)) | |
| } else | |
| u(i, a) && p(t) ? f(s, i, h, c) : r(l(t, i)) | |
| }) | |
| } | |
| function l(e, t) { | |
| return t > 1 && (e.retryCount = t, | |
| e.ttc = o(v)), | |
| e | |
| } | |
| var v = i.now(); | |
| s(1) | |
| } | |
| ) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/decorations/availability", ["require", "exports", "module", "lodash-compat"], function(e, t) { | |
| function r(e, t) { | |
| var r = n.clone(e); | |
| return r.url = t, | |
| r | |
| } | |
| function i(e, t) { | |
| return e < t | |
| } | |
| function s() { | |
| return !1 | |
| } | |
| var n = e("lodash-compat"); | |
| t.build = function(t, n) { | |
| var o = n.alternateUrls || [] | |
| , u = n.isTransientCheck || s; | |
| return function(n) { | |
| function f() { | |
| return Promise.resolve(t(r(n, a[s]))) | |
| } | |
| function l(e) { | |
| if (!i(++s, a.length) || !u(e)) | |
| throw e; | |
| f(s).catch(l) | |
| } | |
| var s = 0 | |
| , a = [n.url].concat(o); | |
| return f(s).catch(l) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/serviceQosReporter", ["require", "exports", "module", "lodash-compat", "jSkype/client", "jSkype/settings"], function(e, t) { | |
| function o() { | |
| function u(r, i, s) { | |
| if (o === 0 || !r) | |
| return !1; | |
| s = s || {}; | |
| var u = r; | |
| n.forIn(s, function(e, t) { | |
| l(t) && (u += t + e) | |
| }), | |
| t[u] || (t[u] = { | |
| total: 0, | |
| success: 0, | |
| serviceName: r, | |
| payload: s | |
| }), | |
| i && t[u].success++, | |
| t[u].total++, | |
| e++, | |
| e >= o && (a(), | |
| t = {}, | |
| e = 0) | |
| } | |
| function a() { | |
| Object.keys(t).forEach(function(e) { | |
| var t = f(e); | |
| r.get()._telemetryManager.sendEvent(i.settings.telemetry.jSkypeTenantToken, s, t) | |
| }) | |
| } | |
| function f(e) { | |
| var r = t[e].success | |
| , i = t[e].total | |
| , s = t[e].serviceName | |
| , o = t[e].payload | |
| , u = i - r | |
| , a = Math.round(r / i * 100) | |
| , f = { | |
| service_id: s, | |
| qos: a.toString(), | |
| success_count: r.toString(), | |
| failure_count: u.toString() | |
| }; | |
| return n.forIn(o, function(e, t) { | |
| l(t) && e && (f[t] = e.toString()) | |
| }), | |
| f | |
| } | |
| function l(e) { | |
| return !n.includes(["serviceName", "service_id", "success_count", "failure_count"], e) | |
| } | |
| var e = 0 | |
| , t = {} | |
| , o = i.settings.serviceQosReporter.iterationCountBeforeFlushingQoSMetrics; | |
| this.reportSuccess = function(t, n) { | |
| return u(t, !0, n) | |
| } | |
| , | |
| this.reportFail = function(t, n) { | |
| return u(t, !1, n) | |
| } | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("jSkype/client") | |
| , i = e("jSkype/settings") | |
| , s = "service_qos"; | |
| t.build = function() { | |
| return new o | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/serviceQosReporterFacade", ["require", "exports", "module", "jSkype/services/serviceAccessLayer/serviceQosReporter"], function(e, t) { | |
| var n = e("jSkype/services/serviceAccessLayer/serviceQosReporter") | |
| , r = null ; | |
| t.getInstance = function() { | |
| return r || (r = n.build()), | |
| r | |
| } | |
| }), | |
| define("telemetry/chat/telemetryEnumerator", ["require", "constants/common", "cafe/enums"], function(e) { | |
| function r() { | |
| function u(t, n) { | |
| if (t === 0) | |
| return e.enums.CONVERSATION.ZERO; | |
| if (t === 1) | |
| return e.enums.CONVERSATION.ONE; | |
| if (t === 2) | |
| return e.enums.CONVERSATION.TWO; | |
| if (t === 3) | |
| return e.enums.CONVERSATION.THREE; | |
| if (t === 4) | |
| return e.enums.CONVERSATION.FOUR; | |
| if (t === 5) | |
| return e.enums.CONVERSATION.FIVE; | |
| if (t > 5 && t <= 10) | |
| return e.enums.CONVERSATION.LESS_10; | |
| if (t > 10 && t <= 15) | |
| return e.enums.CONVERSATION.LESS_15; | |
| if (t > 15 && t <= 20) | |
| return e.enums.CONVERSATION.LESS_20; | |
| if (t > 20 && t <= 50) | |
| return e.enums.CONVERSATION.LESS_50; | |
| if (n && t > 50) | |
| return Math.round(t / 50) + e.enums.CONVERSATION.MORE_50; | |
| if (t > 50 && t <= 100) | |
| return e.enums.CONVERSATION.LESS_100; | |
| if (t > 100) | |
| return Math.round(t / 100) + e.enums.CONVERSATION.MORE_100 | |
| } | |
| function a(e) { | |
| return Math.round(e / 1e3) | |
| } | |
| var e = this | |
| , r = 6e4 | |
| , i = 60 * r | |
| , s = 24 * i | |
| , o = t.telemetry.NOT_AVAILABLE; | |
| e.enums = { | |
| GROUP_TYPE: { | |
| ZERO: "zero", | |
| ONE: "1", | |
| TWO: "2", | |
| LESS_5: "3-5", | |
| LESS_10: "5-10", | |
| LESS_25: "10-25", | |
| LESS_50: "25-50", | |
| LESS_100: "50-100", | |
| MORE_100: "x100" | |
| }, | |
| TIMEDELTA: { | |
| MIN_1: "1MIN", | |
| MIN_5: "5MIN", | |
| MIN_10: "10MIN", | |
| MIN_30: "30MIN", | |
| HOUR_1: "1HOUR", | |
| HOUR_3: "3HOUR", | |
| HOUR_6: "6HOUR", | |
| HOUR_9: "9HOUR", | |
| HOUR_12: "12HOUR", | |
| HOUR_18: "18HOUR", | |
| HOUR_24: "24HOUR", | |
| DAYS: "DAY" | |
| }, | |
| CONTACTS: { | |
| ZERO: "zero", | |
| LESS_5: "1-5", | |
| LESS_10: "5-10", | |
| LESS_25: "10-25", | |
| LESS_50: "25-50", | |
| LESS_100: "50-100", | |
| LESS_150: "100-150", | |
| LESS_200: "150-200", | |
| MORE_200: "x200" | |
| }, | |
| CONVERSATION: { | |
| ZERO: "zero", | |
| ONE: "1", | |
| TWO: "2", | |
| THREE: "3", | |
| FOUR: "4", | |
| FIVE: "5", | |
| LESS_10: "5-10", | |
| LESS_15: "10-15", | |
| LESS_20: "15-20", | |
| LESS_50: "20-50", | |
| MORE_50: "x50", | |
| LESS_100: "50-100", | |
| MORE_100: "x100" | |
| }, | |
| LIFETIME: { | |
| MIN: "1MIN", | |
| LESS_5MIN: "5MIN", | |
| LESS_10MIN: "10MIN", | |
| LESS_20MIN: "20MIN", | |
| LESS_1HOUR: "1hour", | |
| LESS_1DAY: "1DAY", | |
| LESS_2DAYS: "2DAYS", | |
| LESS_4DAYS: "3_4_DAYS", | |
| LESS_6DAYS: "5_6_DAYS", | |
| LESS_14DAYS: "7_14_DAYS", | |
| LESS_21DAYS: "15_21_DAYS", | |
| LESS_29DAYS: "22_29_DAYS" | |
| }, | |
| URL_CONTENT_TYPE: { | |
| YOUTUBE: "YT", | |
| GIF: "GIF", | |
| TWITTER: "TWIT", | |
| OTHER: "WWW" | |
| }, | |
| URL_POSITION: { | |
| URL_ONLY: "URL", | |
| TEXT_WITH_URL: "URL_MID", | |
| TEXT_ENDING_WITH_URL: "URL_END" | |
| }, | |
| DURATION: { | |
| NA: "n/a", | |
| ZERO: "0SEC", | |
| ONE: "1SEC", | |
| TWO: "2SEC", | |
| THREE: "3SEC", | |
| FOUR: "4SEC", | |
| FIVE: "5SEC", | |
| LESS_10: "5-10SEC", | |
| MORE_10: "x10SEC" | |
| }, | |
| NET_CODE: { | |
| OK: { | |
| START: 200, | |
| END: 399 | |
| }, | |
| ERROR: { | |
| START: 400, | |
| END: 599 | |
| } | |
| }, | |
| FILE_TYPE_GROUP: { | |
| PICTURE: "picture", | |
| VIDEO: "video", | |
| AUDIO: "audio", | |
| OFFICE: "office", | |
| ARCHIVE: "archive", | |
| BINARY: "binary", | |
| PDF: "pdf", | |
| OTHER: "other" | |
| } | |
| }, | |
| e.getFileTypeGroup = function(t) { | |
| switch (t) { | |
| case "png": | |
| case "jpg": | |
| case "gif": | |
| case "bmp": | |
| case "tiff": | |
| return e.enums.FILE_TYPE_GROUP.PICTURE; | |
| case "avi": | |
| case "mp4": | |
| case "mkv": | |
| case "wmv": | |
| case "m4v": | |
| return e.enums.FILE_TYPE_GROUP.VIDEO; | |
| case "mp3": | |
| case "cda": | |
| case "m4a": | |
| case "wav": | |
| return e.enums.FILE_TYPE_GROUP.AUDIO; | |
| case "xls": | |
| case "xlsx": | |
| case "xlsm": | |
| case "doc": | |
| case "docx": | |
| case "ppt": | |
| case "pptx": | |
| return e.enums.FILE_TYPE_GROUP.OFFICE; | |
| case "zip": | |
| case "rar": | |
| case "ace": | |
| case "7z": | |
| case "dmg": | |
| return e.enums.FILE_TYPE_GROUP.ARCHIVE; | |
| case "exe": | |
| case "msi": | |
| case "iso": | |
| return e.enums.FILE_TYPE_GROUP.BINARY; | |
| case "pdf": | |
| return e.enums.FILE_TYPE_GROUP.PDF; | |
| default: | |
| return e.enums.FILE_TYPE_GROUP.OTHER | |
| } | |
| } | |
| , | |
| e.getDurationGroup = function(t) { | |
| if (t <= r) | |
| return e.enums.TIMEDELTA.MIN_1; | |
| if (t > r && t <= 5 * r) | |
| return e.enums.TIMEDELTA.MIN_5; | |
| if (t > 5 * r && t <= 10 * r) | |
| return e.enums.TIMEDELTA.MIN_10; | |
| if (t > 10 * r && t <= 30 * r) | |
| return e.enums.TIMEDELTA.MIN_30; | |
| if (t > 30 * r && t <= i) | |
| return e.enums.TIMEDELTA.HOUR_1; | |
| if (t > i && t <= 3 * i) | |
| return e.enums.TIMEDELTA.HOUR_3; | |
| if (t > 3 * i && t <= 6 * i) | |
| return e.enums.TIMEDELTA.HOUR_6; | |
| if (t > 6 * i && t <= 9 * i) | |
| return e.enums.TIMEDELTA.HOUR_9; | |
| if (t > 9 * i && t <= 12 * i) | |
| return e.enums.TIMEDELTA.HOUR_12; | |
| if (t > 12 * i && t <= 18 * i) | |
| return e.enums.TIMEDELTA.HOUR_18; | |
| if (t > 18 * i && t <= 24 * i) | |
| return e.enums.TIMEDELTA.HOUR_24; | |
| if (t > s) | |
| return Math.round(t / s) + e.enums.TIMEDELTA.DAYS | |
| } | |
| , | |
| e.getParticipantCountGroup = function(t) { | |
| if (t === 0) | |
| return e.enums.GROUP_TYPE.ZERO; | |
| if (t === 1) | |
| return e.enums.GROUP_TYPE.ONE; | |
| if (t === 2) | |
| return e.enums.GROUP_TYPE.TWO; | |
| if (t > 2 && t <= 5) | |
| return e.enums.GROUP_TYPE.LESS_5; | |
| if (t > 5 && t <= 10) | |
| return e.enums.GROUP_TYPE.LESS_10; | |
| if (t > 10 && t <= 25) | |
| return e.enums.GROUP_TYPE.LESS_25; | |
| if (t > 25 && t <= 50) | |
| return e.enums.GROUP_TYPE.LESS_50; | |
| if (t > 50 && t <= 100) | |
| return e.enums.GROUP_TYPE.LESS_100; | |
| if (t > 100) | |
| return Math.round(t / 100) + e.enums.GROUP_TYPE.MORE_100 | |
| } | |
| , | |
| e.getMessageType = function(e) { | |
| switch (e.model.type()) { | |
| case n.activityType.TextMessage: | |
| if (e.previews) { | |
| var t = e.previews(); | |
| if (t.length > 0) | |
| return t[0].type() | |
| } | |
| return n.activityType.TextMessage; | |
| case n.activityType.VideoMessage: | |
| case n.activityType.PictureMessage: | |
| case n.activityType.MojiMessage: | |
| case n.activityType.FileTransfer: | |
| return e.model.type(); | |
| default: | |
| return o | |
| } | |
| } | |
| , | |
| e.getContactsGroup = function(t) { | |
| if (t === 0) | |
| return e.enums.CONTACTS.ZERO; | |
| if (t >= 1 && t <= 5) | |
| return e.enums.CONTACTS.LESS_5; | |
| if (t > 5 && t <= 10) | |
| return e.enums.CONTACTS.LESS_10; | |
| if (t > 10 && t <= 25) | |
| return e.enums.CONTACTS.LESS_25; | |
| if (t > 25 && t <= 50) | |
| return e.enums.CONTACTS.LESS_50; | |
| if (t > 50 && t <= 100) | |
| return e.enums.CONTACTS.LESS_100; | |
| if (t > 100 && t <= 150) | |
| return e.enums.CONTACTS.LESS_150; | |
| if (t > 150 && t <= 200) | |
| return e.enums.CONTACTS.LESS_200; | |
| if (t > 200) | |
| return Math.round(t / 200) + e.enums.CONTACTS.MORE_200 | |
| } | |
| , | |
| e.getConversationCountGroup = function(e) { | |
| return u(e) | |
| } | |
| , | |
| e.getMessageCountGroup = function(e) { | |
| return u(e, !0) | |
| } | |
| , | |
| e.getSecondsDurationGroup = function(t) { | |
| return t === 0 ? e.enums.DURATION.ZERO : t === 1 ? e.enums.DURATION.ONE : t === 2 ? e.enums.DURATION.TWO : t === 3 ? e.enums.DURATION.THREE : t === 4 ? e.enums.DURATION.FOUR : t === 5 ? e.enums.DURATION.FIVE : t > 5 && t <= 10 ? e.enums.DURATION.LESS_10 : t > 10 ? Math.round(t / 10) + e.enums.DURATION.MORE_10 : e.enums.DURATION.NA | |
| } | |
| , | |
| e.getSecondsDurationGroupFromMs = function(t) { | |
| return e.getSecondsDurationGroup(a(t)) | |
| } | |
| , | |
| e.isError = function(t) { | |
| return e.enums.NET_CODE.OK.START <= t && t < e.enums.NET_CODE.OK.END ? !1 : e.enums.NET_CODE.ERROR.START <= t && t < e.enums.NET_CODE.ERROR.END ? !0 : o | |
| } | |
| , | |
| e.getUrlContentType = function(t) { | |
| return t.indexOf("www.youtube.com") > -1 ? e.enums.URL_CONTENT_TYPE.YOUTUBE : /^http.*\.gif$/.exec(t) ? e.enums.URL_CONTENT_TYPE.GIF : t.indexOf("twitter.com") > -1 ? e.enums.URL_CONTENT_TYPE.TWITTER : e.enums.URL_CONTENT_TYPE.OTHER | |
| } | |
| , | |
| e.getMessageLifeDurationGroup = function(t) { | |
| return t < r ? e.enums.LIFETIME.MIN : t < 5 * r ? e.enums.LIFETIME.LESS_5MIN : t < 10 * r ? e.enums.LIFETIME.LESS_10MIN : t < 20 * r ? e.enums.LIFETIME.LESS_20MIN : t < i ? e.enums.LIFETIME.LESS_1HOUR : t < s ? e.enums.LIFETIME.LESS_1DAY : t < 2 * s ? e.enums.LIFETIME.LESS_2DAYS : t < 4 * s ? e.enums.LIFETIME.LESS_4DAYS : t < 6 * s ? e.enums.LIFETIME.LESS_6DAYS : t < 14 * s ? e.enums.LIFETIME.LESS_14DAYS : t < 21 * s ? e.enums.LIFETIME.LESS_21DAYS : t < 29 * s ? e.enums.LIFETIME.LESS_29DAYS : o | |
| } | |
| } | |
| var t = e("constants/common") | |
| , n = e("cafe/enums"); | |
| return new r | |
| }), | |
| define("jSkype/services/serviceAccessLayer/serviceQosRetryReporter", ["require", "exports", "module", "jSkype/client", "jSkype/settings", "telemetry/chat/telemetryEnumerator"], function(e, t) { | |
| function o() { | |
| this.publish = function(e) { | |
| var t = "serviceRetry_qos" | |
| , s = e; | |
| s.ttcGroup = i.getSecondsDurationGroupFromMs(e.ttc), | |
| n.get()._telemetryManager.sendEvent(r.settings.telemetry.jSkypeTenantToken, t, s) | |
| } | |
| } | |
| var n = e("jSkype/client"), r = e("jSkype/settings"), i = e("telemetry/chat/telemetryEnumerator"), s; | |
| t.get = function() { | |
| return s || (s = new o), | |
| s | |
| } | |
| }), | |
| define("jSkype/services/webapi/constants", ["require", "exports", "module"], function(e, t) { | |
| t.SERVICE_CALLS = { | |
| SET_THREAD_OPTION: "setThreadOption", | |
| SET_CONVERSATION_OPTION: "setConversationOption", | |
| PIN_TO_DOGFOOD: "pinToDogfood", | |
| CREATE_CONVERSATION: "createConversation", | |
| POST_MESSAGE: "postMessage", | |
| ADD_PARTICIPANT: "addParticipant", | |
| REMOVE_PARTICIPANT: "removeParticipant", | |
| SET_CONSUMPTION_HORIZON: "setConsumptionHorizon", | |
| FETCH_MESSAGES: "fetchMessages", | |
| FETCH_MESSAGES_LOAD_MORE: "fetchMessagesLoadMore", | |
| FETCH_THREAD: "fetchThread", | |
| FETCH_CONVERSATION: "fetchConversation", | |
| FETCH_CONVERSATIONS: "fetchConversations", | |
| FETCH_CONVERSATIONS_BY_SYNC_STATE: "fetchConversationsBySyncState", | |
| REQUEST_ENDPOINT_CREATION: "requestEndpointCreation", | |
| REQUEST_ENDPOINT_DELETION: "requestEndpointDeletion", | |
| REQUEST_SUBSCRIPTION_CREATION: "requestSubscriptionCreation", | |
| REQUEST_POLLING: "requestPolling", | |
| SET_ENDPOINT_PRESENCE: "setEndpointPresence", | |
| SET_ENDPOINT_PROPERTY: "setEndpointProperty", | |
| ACTIVATE_ENDPOINT: "activateEndpoint", | |
| SET_USER_PRESENCE: "setUserPresence", | |
| GET_USER_PRESENCE: "getUserPresence", | |
| SEND_CONTACT_LIST: "sendContactsList", | |
| ADD_CONTACT_TO_CONTACTS_LIST: "addContactToContactsList", | |
| REMOVE_CONTACT_FROM_CONTACTS_LIST: "removeContactFromContactsList", | |
| GET_SELF_PROPERTIES: "getSelfProperties", | |
| SET_MESSAGE_PROPERTY: "setMessageProperty", | |
| REMOVE_MESSAGE_PROPERTY: "removeMessageProperty", | |
| REMOVE_ALL_MESSAGES: "removeAllMessage" | |
| }, | |
| t.ENDPOINT_PROPERTIES = { | |
| SUPPORTS_MESSAGE_PROPERTIES: "supportsMessageProperties" | |
| }, | |
| t.MESSAGE_PROPERTIES = { | |
| GLOBAL: { | |
| ACTIVITY_DATA: "activityData", | |
| PINNED: "pinned", | |
| PROTOTYPE_SKYPEX: "prototype_skypex" | |
| }, | |
| PER_USER: { | |
| EMOTIONS: "emotions", | |
| POLL: "poll", | |
| TRANSLATIONS: "translations" | |
| } | |
| }, | |
| t.ACTIVATE_ENDPOINT_TIMEOUT = 12e3, | |
| t.ACTIVATE_ENDPOINT_TOLERANCE = 6e3 | |
| }), | |
| define("jSkype/services/serviceAccessLayer/decorations/reporting", ["require", "exports", "module", "lodash-compat", "constants/common", "jSkype/client", "jSkype/services/serviceAccessLayer/serviceQosReporterFacade", "jSkype/services/serviceAccessLayer/serviceQosRetryReporter", "jSkype/services/webapi/constants", "jSkype/settings"], function(e, t) { | |
| function f(e, t) { | |
| var n = JSON.parse(t.response); | |
| n && n.errorCode && (e.errorCode = n.errorCode, | |
| e.errorMessage = n.message) | |
| } | |
| function l(e, t) { | |
| var r = e.getAllResponseHeaders().toLowerCase(); | |
| return n.contains(r, t) && e.getResponseHeader(t) | |
| } | |
| function c(e, t) { | |
| if (e.faultCode === 404) { | |
| if (l(t, "location") || t.response === undefined) | |
| return; | |
| try { | |
| f(e, t) | |
| } catch (n) {} | |
| } | |
| var s = i.get()._telemetry.eventBus; | |
| s.publish(r.events.errors.SERVICE_FAILURE, e) | |
| } | |
| function h(e) { | |
| return e && p() | |
| } | |
| function p() { | |
| return a.isFeatureOn(r.featureFlags.SERVICE_FAILURE_REPORTING) | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("constants/common") | |
| , i = e("jSkype/client") | |
| , s = e("jSkype/services/serviceAccessLayer/serviceQosReporterFacade") | |
| , o = e("jSkype/services/serviceAccessLayer/serviceQosRetryReporter") | |
| , u = e("jSkype/services/webapi/constants").SERVICE_CALLS | |
| , a = e("jSkype/settings"); | |
| t.build = function(t, r) { | |
| var i = r.serviceName | |
| , a = s.getInstance(); | |
| return function(r) { | |
| function f(e) { | |
| var t = { | |
| serviceName: i, | |
| verb: r.type, | |
| host: m(r.url) | |
| }; | |
| return i === "webapi-" + u.REQUEST_POLLING && e && e.response && e.response.eventMessages && l(t, e.response), | |
| t | |
| } | |
| function l(e, t) { | |
| var r = n.map(t.eventMessages, "resourceType"); | |
| n.uniq(r).forEach(function(t) { | |
| var i = r.length | |
| , s = n.without(r, t).length; | |
| e[n.camelCase(t)] = i - s | |
| }) | |
| } | |
| function p(e, t) { | |
| var n = e.request ? e.request.status : e.status; | |
| return { | |
| serviceName: i, | |
| retryCount: e.retryCount, | |
| responseCode: n, | |
| isFailed: t, | |
| ttc: e.ttc | |
| } | |
| } | |
| function d(e) { | |
| a.reportSuccess(i, f(e)), | |
| e.retryCount && o.get().publish(p(e, !1)) | |
| } | |
| function v(e) { | |
| e.retryCount && o.get().publish(p(e, !0)); | |
| if (h(i)) { | |
| var t = f(); | |
| e instanceof XMLHttpRequest && (t.faultCode = e.status), | |
| a.reportFail(i, t), | |
| c(t, e) | |
| } | |
| } | |
| function m(e) { | |
| if (!e) | |
| return; | |
| var t = e.match(/(?:[\s\S]*):\/\/([^\/\r\n]+)(?:\/[^\r\n]*)?/i); | |
| if (t && t.length > 0) | |
| return t[1] | |
| } | |
| var s = t(r); | |
| return s.then(d, v), | |
| s | |
| } | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/requestDecorator", ["require", "jSkype/services/serviceAccessLayer/decorations/retry", "jSkype/services/serviceAccessLayer/decorations/availability", "jSkype/services/serviceAccessLayer/decorations/reporting"], function(e) { | |
| function s(e, t) { | |
| function r(e) { | |
| var r = t[e.policyName]; | |
| r && (n = e.decoration.build(n, r)) | |
| } | |
| var n = e; | |
| return t ? (i.forEach(r), | |
| n) : e | |
| } | |
| var t = e("jSkype/services/serviceAccessLayer/decorations/retry") | |
| , n = e("jSkype/services/serviceAccessLayer/decorations/availability") | |
| , r = e("jSkype/services/serviceAccessLayer/decorations/reporting") | |
| , i = [{ | |
| decoration: n, | |
| policyName: "availability" | |
| }, { | |
| decoration: t, | |
| policyName: "retry" | |
| }, { | |
| decoration: r, | |
| policyName: "reporting" | |
| }]; | |
| return { | |
| build: s | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/requestDispatcher", ["require", "exports", "module", "lodash-compat", "reqwest", "jSkype/services/serviceAccessLayer/builders/factory", "jSkype/services/serviceAccessLayer/requestDecorator"], function(e, t) { | |
| function u(e, i, o) { | |
| function p(e) { | |
| return u = r.compat(n.cloneDeep(e)), | |
| a(u) | |
| } | |
| function d(e) { | |
| return function() { | |
| e.request.readyState !== t.REQUEST_DONE_READY_STATE && e.abort() | |
| } | |
| } | |
| var u, l = f(e, i, o), c = s.build(p, o), h = c(l); | |
| return h._abort = d(u), | |
| h | |
| } | |
| function a(e) { | |
| return Promise.resolve(e).then(function(n) { | |
| return { | |
| request: e.request, | |
| response: n | |
| } | |
| }, function() { | |
| throw e.request | |
| }) | |
| } | |
| function f(e, t, n) { | |
| var r, s = i.get("headerBuilder"), u = typeof n.addContentType == "undefined" || n.addContentType === !0 ? !0 : !1; | |
| s.populate(n.headers), | |
| r = { | |
| url: t, | |
| type: e, | |
| headers: s.get(), | |
| timeout: o, | |
| dataType: n.dataType || "json", | |
| data: n.payload || "", | |
| crossOrigin: typeof n.crossOrigin != "undefined" ? n.crossOrigin : !0, | |
| withCredentials: typeof n.withCredentials != "undefined" ? n.withCredentials : !1 | |
| }, | |
| u && (r.contentType = n.contentType || "application/json"); | |
| if (n.jsonp || n.dataType === "jsonp") | |
| r.jsonp = n.jsonp || "callback"; | |
| return typeof n.processData == "boolean" && (r.processData = n.processData), | |
| r | |
| } | |
| var n = e("lodash-compat") | |
| , r = e("reqwest") | |
| , i = e("jSkype/services/serviceAccessLayer/builders/factory") | |
| , s = e("jSkype/services/serviceAccessLayer/requestDecorator") | |
| , o = 45e3; | |
| t.get = function(e, t) { | |
| return u("GET", e, t) | |
| } | |
| , | |
| t.post = function(e, t) { | |
| return u("POST", e, t) | |
| } | |
| , | |
| t.put = function(e, t) { | |
| return u("PUT", e, t) | |
| } | |
| , | |
| t.remove = function(e, t) { | |
| return u("DELETE", e, t) | |
| } | |
| , | |
| t.REQUEST_DONE_READY_STATE = 4 | |
| }), | |
| define("jSkype/services/serviceAccessLayer/serviceLocator", ["require", "jSkype/services/serviceAccessLayer/requestDispatcher", "jSkype/services/serviceAccessLayer/builders/factory"], function(e) { | |
| function r(e) { | |
| typeof e != "string" && s("serviceUri", "string"), | |
| this.uriBuilder = n.get("uriBuilder"), | |
| this.uriBuilder.setDomain(e) | |
| } | |
| function i(e, t) { | |
| var n = {}.toString.call(t) === "[object Object]"; | |
| typeof e != "string" && s("resource", "string"), | |
| n || s("options", "object") | |
| } | |
| function s(e, t) { | |
| throw new TypeError('expected typeof "' + e + '" to be: ' + t) | |
| } | |
| var t = e("jSkype/services/serviceAccessLayer/requestDispatcher") | |
| , n = e("jSkype/services/serviceAccessLayer/builders/factory"); | |
| return r.prototype.get = function(e, t) { | |
| return this.request("get", e, t) | |
| } | |
| , | |
| r.prototype.post = function(e, t) { | |
| return this.request("post", e, t) | |
| } | |
| , | |
| r.prototype.put = function(e, t) { | |
| return this.request("put", e, t) | |
| } | |
| , | |
| r.prototype.remove = function(e, t) { | |
| return this.request("remove", e, t) | |
| } | |
| , | |
| r.prototype.request = function(e, n, r) { | |
| return i(n, r), | |
| this.uriBuilder.setResource(n), | |
| this.uriBuilder.setQueryParams(r.params), | |
| t[e](this.uriBuilder.build(), r) | |
| } | |
| , | |
| { | |
| build: function(e) { | |
| return new r(e) | |
| } | |
| } | |
| }), | |
| define("jSkype/constants/data", [], function() { | |
| function t(e) { | |
| return new RegExp("^" + e + "\\|") | |
| } | |
| var e = "contactPresence"; | |
| return { | |
| storageKeys: { | |
| ENDPOINT_ID: "endpointId", | |
| SKYPE_ID_REG_TOKEN: "skypeIdRegistrationToken", | |
| PRESENCE_DATA: "presenceData", | |
| RESURECTION_KEY: "isResurected", | |
| CONTACT_PROFILES: "contacts", | |
| CONTACT_PRESENCE: e, | |
| ETAG: "etagContacts" | |
| }, | |
| storageKeyRegExp: { | |
| CONTACT_PRESENCE: t(e), | |
| CONVERSATION: t("conv") | |
| } | |
| } | |
| }), | |
| define("services/serviceLocator", ["require", "lodash-compat"], function(e) { | |
| var t = e("lodash-compat") | |
| , n = {}; | |
| return { | |
| contains: function(e) { | |
| return n[e] | |
| }, | |
| register: function(e, r) { | |
| if (!t.isString(e) || e === "") | |
| throw new Error("You must provide a valid name for this service"); | |
| if (n[e]) | |
| throw new Error("Service '" + e + "' already registered"); | |
| n[e] = r | |
| }, | |
| resolve: function(e) { | |
| if (!n[e]) | |
| throw new Error("Service '" + e + "' not found"); | |
| return n[e] | |
| }, | |
| destroy: function(e) { | |
| delete n[e] | |
| }, | |
| reset: function() { | |
| n = {} | |
| } | |
| } | |
| }), | |
| define("utils/common/settablePromise", ["require", "exports", "module", "helpers/polyfills"], function(e, t) { | |
| e("helpers/polyfills"), | |
| t.build = function() { | |
| var e, t, n = new Promise(function(n, r) { | |
| e = n, | |
| t = r | |
| } | |
| ); | |
| return n.resolve = e, | |
| n.reject = t, | |
| n | |
| } | |
| }), | |
| define("vendor/msrcrypto.aes", [], function() { | |
| var e = "1.3" | |
| , t = t || function() { | |
| function p(e, t, n, r, i) { | |
| return [] | |
| } | |
| function w() { | |
| function u(e) { | |
| var t; | |
| for (t = e.length - 1; t >= 0; t -= 1) { | |
| e[t] += 1, | |
| e[t] >= 256 && (e[t] = 0); | |
| if (e[t]) | |
| break | |
| } | |
| } | |
| function a() { | |
| t = l.getVector(32), | |
| n = l.getVector(16), | |
| r = 32, | |
| i = 48, | |
| s = 1 | |
| } | |
| function f(e, t) { | |
| t = t || [0]; | |
| if (t.length > i) | |
| throw new Error("Incorrect entropy or additionalEntropy length"); | |
| t = t.concat(l.getVector(i - t.length)), | |
| e = e.concat(l.getVector((i - e.length % i) % i)); | |
| for (var n = 0; n < e.length; n += i) { | |
| var r = l.xorVectors(e.slice(n, n + i), t); | |
| c(r) | |
| } | |
| s = 1 | |
| } | |
| function c(e) { | |
| var s = [] | |
| , o = new m.aes(t); | |
| while (s.length < i) { | |
| u(n); | |
| var a = n.slice(0, 16) | |
| , f = o.encrypt(a); | |
| s = s.concat(f) | |
| } | |
| s = l.xorVectors(s, e), | |
| t = s.slice(0, r), | |
| n = s.slice(r) | |
| } | |
| function h(e, r) { | |
| if (e >= 65536) | |
| throw new Error("too much random requested"); | |
| if (s > o) | |
| throw new Error("Reseeding is required"); | |
| if (r && r.length > 0) { | |
| while (r.length < i) | |
| r = r.concat(l.getVector(i - r.length)); | |
| c(r) | |
| } else | |
| r = l.getVector(i); | |
| var a = [] | |
| , f = new m.aes(t); | |
| while (a.length < e) { | |
| u(n); | |
| var h = n.slice(0, n.length) | |
| , p = f.encrypt(h); | |
| a = a.concat(p) | |
| } | |
| return a = a.slice(0, e), | |
| c(r), | |
| s += 1, | |
| a | |
| } | |
| if (this instanceof w) { | |
| var e = !1, t, n, r, i, s = 1, o = 1 << 24; | |
| return a(), | |
| { | |
| reseed: f, | |
| init: function(t, n) { | |
| if (t.length < i) | |
| throw new Error("Initial entropy length too short"); | |
| a(), | |
| f(t, n), | |
| e = !0 | |
| }, | |
| getBytes: function(t, n) { | |
| if (!e) | |
| throw new Error("can't get randomness before initialization"); | |
| return h(t, n) | |
| }, | |
| getNonZeroBytes: function(t, n) { | |
| if (!e) | |
| throw new Error("can't get randomness before initialization"); | |
| var r = [], i; | |
| while (r.length < t) { | |
| i = h(t, n); | |
| for (var s = 0; s < i.length; s += 1) | |
| i[s] !== 0 && r.push(i[s]) | |
| } | |
| return r.slice(0, t) | |
| } | |
| } | |
| } | |
| throw new Error("create MsrcryptoPrng object with new keyword") | |
| } | |
| function S() { | |
| function a() { | |
| var n, r = []; | |
| for (n = 0; n < e; n += 1) | |
| r[n] = Math.floor(Math.random() * 256); | |
| var a = window.crypto || window.msCrypto; | |
| if (a && typeof a.getRandomValues == "function" && window.Uint8Array) { | |
| var f = new window.Uint8Array(e); | |
| a.getRandomValues(f), | |
| r = r.concat(Array.apply(null , f)), | |
| o = !0 | |
| } | |
| var h = new XMLHttpRequest; | |
| for (n = 0; n < u.length; n += 1) | |
| try { | |
| var p = h.getResponseHeader(u[n]); | |
| if (p) { | |
| var d = l.stringToBytes(p); | |
| r = r.concat(d) | |
| } | |
| } catch (v) {} | |
| o || (r = r.concat(t.splice(0, t.length)), | |
| c.startCollectors()), | |
| s ? i.reseed(r) : i.init(r), | |
| s = !0 | |
| } | |
| function f(e) { | |
| for (var r = 0; r < e.length; ++r) | |
| t.push(e[r]); | |
| t.length >= n && c.stopCollectors() | |
| } | |
| var e = 48 | |
| , t = [] | |
| , n = 128 | |
| , r = 0 | |
| , i = new w | |
| , s = !1 | |
| , o = !1 | |
| , u = ["Cookie", "RedirectUri", "ETag", "x-ms-client-antiforgery-id", "x-ms-client-request-id", "x-ms-client-session-id", "SubscriptionPool"] | |
| , c = function() { | |
| return { | |
| startCollectors: function() { | |
| if (!this.collectorsRegistered) { | |
| if (window.addEventListener) | |
| window.addEventListener("mousemove", this.MouseEventCallBack, !0), | |
| window.addEventListener("load", this.LoadTimeCallBack, !0); | |
| else { | |
| if (!document.attachEvent) | |
| throw new Error("Can't attach events for entropy collection"); | |
| document.attachEvent("onmousemove", this.MouseEventCallBack), | |
| document.attachEvent("onload", this.LoadTimeCallBack) | |
| } | |
| this.collectorsRegistered = 1 | |
| } | |
| }, | |
| stopCollectors: function() { | |
| this.collectorsRegistered && (window.removeEventListener ? (window.removeEventListener("mousemove", this.MouseEventCallBack, 1), | |
| window.removeEventListener("load", this.LoadTimeCallBack, 1)) : window.detachEvent && (window.detachEvent("onmousemove", this.MouseEventCallBack), | |
| window.detachEvent("onload", this.LoadTimeCallBack)), | |
| this.collectorsRegistered = 0) | |
| }, | |
| MouseEventCallBack: function(e) { | |
| var t = (new Date).valueOf() | |
| , n = e.x || e.clientX || e.offsetX || 0 | |
| , r = e.y || e.clientY || e.offsetY || 0 | |
| , i = [t & 255, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, n & 255, n >> 8 & 255, r & 255, r >> 8 & 255]; | |
| f(i) | |
| }, | |
| LoadTimeCallBack: function() { | |
| var e = (new Date).valueOf() | |
| , t = [e & 255, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255]; | |
| f(t) | |
| } | |
| } | |
| }(); | |
| return { | |
| init: function() { | |
| a(); | |
| if (!o && !r) | |
| try { | |
| c.startCollectors() | |
| } catch (e) {} | |
| }, | |
| reseed: function(e) { | |
| i.reseed(e) | |
| }, | |
| read: function(e) { | |
| if (!s) | |
| throw new Error("Entropy pool is not initialized."); | |
| var t = i.getBytes(e); | |
| return a(), | |
| t | |
| } | |
| } | |
| } | |
| var e = {}; | |
| e.register = function(t, n, r) { | |
| e[t] || (e[t] = {}); | |
| var i = e[t]; | |
| i[n] || (i[n] = r) | |
| } | |
| , | |
| e.exists = function(t, n) { | |
| return e[t] ? e[t][n] ? !0 : !1 : !1 | |
| } | |
| ; | |
| var t = function() { | |
| if (typeof document != "undefined") | |
| try { | |
| throw new Error | |
| } catch (e) { | |
| if (e.stack) { | |
| var t = /\w+:\/\/(.+?\/)*.+\.js/.exec(e.stack); | |
| return t && t.length > 0 ? t[0] : null | |
| } | |
| } | |
| else if (typeof self != "undefined") | |
| return self.location.href; | |
| return null | |
| }() | |
| , n = !1 | |
| , r = typeof Worker != "undefined" | |
| , i = typeof importScripts != "undefined" | |
| , s = typeof Uint8Array != "undefined" | |
| , o = function() { | |
| try { | |
| return Object.defineProperty({}, "oncomplete", {}), | |
| !0 | |
| } catch (e) { | |
| return !1 | |
| } | |
| }() | |
| , u = r | |
| , a = function(e, t, n, r, i) { | |
| if (!o) { | |
| e[t] = n; | |
| return | |
| } | |
| var s = {}; | |
| r && (s.get = r), | |
| i && (s.set = i), | |
| Object.defineProperty(e, t, s) | |
| } | |
| , f = {} | |
| , l = function() { | |
| function n(n, r) { | |
| var i = ""; | |
| r || (r = !1); | |
| if (n.pop || n.subarray) | |
| n = String.fromCharCode.apply(null , n); | |
| if (t) | |
| i = btoa(n); | |
| else { | |
| var s, o, u, a, f, l, c, h; | |
| for (h = 0; h < n.length; h += 3) | |
| s = n.charCodeAt(h), | |
| o = n.charCodeAt(h + 1), | |
| u = n.charCodeAt(h + 2), | |
| a = s >> 2, | |
| f = (s & 3) << 4 | o >> 4, | |
| l = (o & 15) << 2 | u >> 6, | |
| c = u & 63, | |
| isNaN(o) ? l = c = 64 : isNaN(u) && (c = 64), | |
| i = i + e.charAt(a) + e.charAt(f) + e.charAt(l) + e.charAt(c) | |
| } | |
| return r ? i.replace(/\+/g, "-").replace(/\//g, "_").replace(/\=/g, "") : i | |
| } | |
| function r(e) { | |
| if (t) { | |
| e = e.replace(/-/g, "+").replace(/_/g, "/"); | |
| while (e.length % 4 !== 0) | |
| e += "="; | |
| return atob(e) | |
| } | |
| return String.fromCharCode.apply(null , i(e)) | |
| } | |
| function i(t) { | |
| t = t.replace(/-/g, "+").replace(/_/g, "/"); | |
| while (t.length % 4 !== 0) | |
| t += "="; | |
| var n = [], r, i, s, o, u, a, f, l; | |
| t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); | |
| for (l = 0; l < t.length; l += 4) | |
| o = e.indexOf(t.charAt(l)), | |
| u = e.indexOf(t.charAt(l + 1)), | |
| a = e.indexOf(t.charAt(l + 2)), | |
| f = e.indexOf(t.charAt(l + 3)), | |
| r = o << 2 | u >> 4, | |
| i = (u & 15) << 4 | a >> 2, | |
| s = (a & 3) << 6 | f, | |
| n.push(r), | |
| a !== 64 && n.push(i), | |
| f !== 64 && n.push(s); | |
| return n | |
| } | |
| function s(e) { | |
| return Object.prototype.toString.call(e).slice(8, -1) | |
| } | |
| function o(e, t) { | |
| var n = ""; | |
| typeof t == "undefined" && (t = !1); | |
| for (var r = 0; r < e.length; r++) { | |
| t && r % 4 === 0 && r !== 0 && (n += "-"); | |
| var i = e[r].toString(16).toUpperCase(); | |
| i.length === 1 && (n += "0"), | |
| n += i | |
| } | |
| return n | |
| } | |
| function u(e, t) { | |
| return t = t || 0, | |
| e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3] | |
| } | |
| function a(e) { | |
| var t = new Array(e.length); | |
| for (var n = 0; n < t.length; n++) | |
| t[n] = e.charCodeAt(n); | |
| return t | |
| } | |
| function f(e) { | |
| e = e.replace(/\-/g, ""); | |
| var t = []; | |
| while (e.length >= 2) | |
| t.push(parseInt(e.substring(0, 2), 16)), | |
| e = e.substring(2, e.length); | |
| return t | |
| } | |
| function l(e) { | |
| var t = {}; | |
| for (var n in e) | |
| e.hasOwnProperty(n) && (t[n] = e[n]); | |
| return t | |
| } | |
| function c(e, t, n) { | |
| var r = i(e), s = [], o; | |
| if (isNaN(t)) | |
| return r; | |
| for (o = 0; o < r.length; o += t) | |
| s.push(r.slice(o, o + t)); | |
| if (n) | |
| for (o = 0; o < s.length; o++) | |
| s[o] = (s[o][0] << 24) + (s[o][1] << 16) + (s[o][2] << 8) + s[o][3]; | |
| return s | |
| } | |
| function h(e) { | |
| return [e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, e & 255] | |
| } | |
| function p(e) { | |
| var t = []; | |
| for (var n = 0; n < e.length; n++) | |
| t = t.concat(h(e[n])); | |
| return t | |
| } | |
| function d(e, t) { | |
| var n = Math.min(e.length, t.length) | |
| , r = new Array(n); | |
| for (var i = 0; i < n; i += 1) | |
| r[i] = e[i] ^ t[i]; | |
| return r | |
| } | |
| function v(e, t) { | |
| t || (t = 0); | |
| var n = new Array(e); | |
| for (var r = 0; r < e; r += 1) | |
| n[r] = t; | |
| return n | |
| } | |
| function m(e) { | |
| function t() { | |
| var t = 6e4 | |
| , n = [] | |
| , r = []; | |
| if (e.length <= t) | |
| return Array.apply(null , e); | |
| for (var i = 0, s = e.length; i < s; i += t) | |
| n.push(e.subarray(i, i + t)); | |
| return n.forEach(function(e) { | |
| r = r.concat(Array.apply(null , e)) | |
| }), | |
| r | |
| } | |
| return e.pop ? e : e.length === 1 ? [e[0]] : t() | |
| } | |
| function g(e, t, n) { | |
| while (e.length < n) | |
| e.push(t); | |
| return e | |
| } | |
| function y(e, t, n) { | |
| while (e.length < n) | |
| e.unshift(t); | |
| return e | |
| } | |
| function b(e, t) { | |
| var n = !0; | |
| e.length !== t.length && (n = !1); | |
| for (var r = 0; r < e.length; r++) | |
| e[r] !== t[r] && (n = !1); | |
| return n | |
| } | |
| function w(e) { | |
| if (s(e) !== "Array") | |
| return !1; | |
| var t; | |
| for (var n = 0; n < e.length; n++) { | |
| t = e[n]; | |
| if (isNaN(t) || t < 0 || t > 255) | |
| return !1 | |
| } | |
| return !0 | |
| } | |
| var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" | |
| , t = typeof btoa != "undefined"; | |
| return { | |
| toBase64: n, | |
| base64ToString: r, | |
| base64ToBytes: i, | |
| getObjectType: s, | |
| bytesToHexString: o, | |
| bytesToInt32: u, | |
| stringToBytes: a, | |
| unpackData: c, | |
| hexToBytesArray: f, | |
| int32ToBytes: h, | |
| int32ArrayToBytes: p, | |
| toArray: m, | |
| arraysEqual: b, | |
| clone: l, | |
| xorVectors: d, | |
| padEnd: g, | |
| padFront: y, | |
| getVector: v, | |
| verifyByteArray: w | |
| } | |
| }() | |
| , c = function() { | |
| function t(e) { | |
| return i && self.postMessage(e), | |
| e | |
| } | |
| return { | |
| jsCryptoRunner: function(n) { | |
| var r = n.data.operationType, i; | |
| if (!e.exists(r, n.data.algorithm.name)) | |
| throw new Error("unregistered algorithm."); | |
| var s = e[r][n.data.algorithm.name] | |
| , o = n.data; | |
| return o.operationSubType === "process" ? (s(o), | |
| i = t({ | |
| type: "process" | |
| })) : i = t(s(o)), | |
| i | |
| } | |
| } | |
| }(); | |
| i && (self.onmessage = function(e) { | |
| if (e.data.prngSeed) { | |
| var t = e.data.prngSeed; | |
| E.init(t); | |
| return | |
| } | |
| c.jsCryptoRunner(e) | |
| } | |
| ); | |
| var h = function() { | |
| function t(e) { | |
| var t = []; | |
| for (var n = 0; n < e.length; n++) | |
| t[n] = e.charCodeAt(n); | |
| return t[t.length - 1] === 0 && t.pop(), | |
| t | |
| } | |
| function n(e) { | |
| var t = e.algorithm.name.slice(0, 3).toLowerCase(); | |
| return t === "rsa" ? "RSA" : t === "ecd" ? "EC" : "oct" | |
| } | |
| function r(r, i) { | |
| var s = {}; | |
| s.kty = n(r), | |
| s.extractable = r.extractable; | |
| if (i.pop) | |
| s.k = e.toBase64(i, !0); | |
| else | |
| for (var o in i) | |
| i[o].pop && (s[o] = e.toBase64(i[o], !0)); | |
| r.algorithm.namedCurve && (s.crv = r.algorithm.namedCurve); | |
| var u = JSON.stringify(s, null , " "); | |
| return t(u) | |
| } | |
| function i(t, n, r) { | |
| var i = String.fromCharCode.apply(null , t) | |
| , s = JSON.parse(i); | |
| for (var o = 0; o < r.length; o += 1) { | |
| var u = s[r[o]]; | |
| u && (s[r[o]] = e.base64ToBytes(u)) | |
| } | |
| return s | |
| } | |
| var e = l; | |
| return { | |
| keyToJwk: r, | |
| jwkToKey: i | |
| } | |
| }() | |
| , d = function(e, t, n, r, i, s, o) { | |
| function p(e) { | |
| var t = Math.floor(e.length / i); | |
| for (var n = 0; n < t; n++) | |
| s(e, n, a, r, f); | |
| return h += t, | |
| e.slice(t * i) | |
| } | |
| function d() { | |
| var e = []; | |
| for (var t = 0; t < a.length; t++) | |
| e = e.concat(u.int32ToBytes(a[t])); | |
| return e.length = o / 8, | |
| e | |
| } | |
| function v(e) { | |
| var t = i - e.length % i; | |
| t <= i / 8 && (t += i); | |
| var n = u.getVector(t); | |
| n[0] = 128; | |
| var r = (e.length + h * i) * 8; | |
| return n[t - 4] = r >>> 24 & 255, | |
| n[t - 3] = r >>> 16 & 255, | |
| n[t - 2] = r >>> 8 & 255, | |
| n[t - 1] = r & 255, | |
| e.concat(n) | |
| } | |
| function m(e) { | |
| return c = p(e), | |
| y() | |
| } | |
| function g(e) { | |
| c = c.concat(e), | |
| c.length >= i && (c = p(c)); | |
| return | |
| } | |
| function y() { | |
| if (p(v(c)).length !== 0) | |
| throw new Error("buffer.length !== 0"); | |
| var e = d(); | |
| return c = [], | |
| a = n.slice(), | |
| h = 0, | |
| e | |
| } | |
| var u = l | |
| , a = n.slice() | |
| , f = new Array(i) | |
| , c = [] | |
| , h = 0; | |
| return { | |
| name: e, | |
| computeHash: m, | |
| process: g, | |
| finish: y, | |
| der: t, | |
| hashLen: o, | |
| maxMessageSize: 4294967295 | |
| } | |
| } | |
| , v = function() { | |
| function t(t, n, r, i, s) { | |
| var o, u, a, f, l, c = 64, h = 4294967295, p = r[0], d = r[1], v = r[2], m = r[3], g = r[4], y = r[5], b = r[6], w = r[7]; | |
| for (u = 0; u < 16; u++) | |
| s[u] = e.bytesToInt32(t, n * c + u * 4); | |
| for (o = 16; o < 64; o++) | |
| f = s[o - 15], | |
| l = s[o - 2], | |
| s[o] = ((l >>> 17 | l << 15) ^ (l >>> 19 | l << 13) ^ l >>> 10) + s[o - 7] + ((f >>> 7 | f << 25) ^ (f >>> 18 | f << 14) ^ f >>> 3) + s[o - 16], | |
| s[o] = s[o] & h; | |
| for (u = 0; u < 64; u++) | |
| a = w + ((g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7)) + (g & y ^ ~g & b) + i[u] + s[u], | |
| m += a, | |
| a += ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + (p & (d ^ v) ^ d & v), | |
| w = b, | |
| b = y, | |
| y = g, | |
| g = m, | |
| m = v, | |
| v = d, | |
| d = p, | |
| p = a; | |
| return r[0] += p & h, | |
| r[1] += d & h, | |
| r[2] += v & h, | |
| r[3] += m & h, | |
| r[4] += g & h, | |
| r[5] += y & h, | |
| r[6] += b & h, | |
| r[7] += w & h, | |
| r | |
| } | |
| var e = l, n, r, i, s, o, u = e.unpackData; | |
| return r = u("wQWe2DZ81QcwcN0X9w5ZOf/ACzFoWBURZPmPp776T6Q", 4, 1), | |
| i = u("agnmZ7tnroU8bvNypU/1OlEOUn+bBWiMH4PZq1vgzRk", 4, 1), | |
| n = u("QoovmHE3RJG1wPvP6bXbpTlWwltZ8RHxkj+CpKscXtXYB6qYEoNbASQxhb5VDH3Dcr5ddIDesf6b3AanwZvxdOSbacHvvkeGD8GdxiQMocwt6SxvSnSEqlywqdx2+YjamD5RUqgxxm2wAyfIv1l/x8bgC/PVp5FHBspjURQpKWcntwqFLhshOE0sbfxTOA0TZQpzVHZqCruBwskuknIshaK/6KGoGmZLwkuLcMdsUaPRkugZ1pkGJPQONYUQaqBwGaTBFh43bAgnSHdMNLC8tTkcDLNO2KpKW5zKT2gub/N0j4LueKVjb4TIeBSMxwIIkL7/+qRQbOu++aP3xnF48g", 4, 1), | |
| s = u("MC0wDQYJYIZIAWUDBAIEBQAEHA"), | |
| o = u("MDEwDQYJYIZIAWUDBAIBBQAEIA"), | |
| { | |
| sha224: d("SHA-224", s, r, n, 64, t, 224), | |
| sha256: d("SHA-256", o, i, n, 64, t, 256) | |
| } | |
| }(); | |
| typeof e != "undefined" && (v.hash256 = function(e) { | |
| if (e.operationSubType === "process") { | |
| v.sha256.process(e.buffer); | |
| return | |
| } | |
| return e.operationSubType === "finish" ? v.sha256.finish() : v.sha256.computeHash(e.buffer) | |
| } | |
| , | |
| v.hash224 = function(e) { | |
| if (e.operationSubType === "process") { | |
| v.sha224.process(e.buffer); | |
| return | |
| } | |
| return e.operationSubType === "finish" ? v.sha224.finish() : v.sha224.computeHash(e.buffer) | |
| } | |
| , | |
| e.register("digest", "sha-224", v.hash224), | |
| e.register("digest", "sha-256", v.hash256)), | |
| f["sha-224"] = v.sha224, | |
| f["sha-256"] = v.sha256; | |
| var m = function() { | |
| var e, t, n, r, i, s, o, u, a, f; | |
| return { | |
| aes: function(c) { | |
| e || (e = l.unpackData("AAIEBggKDA4QEhQWGBocHiAiJCYoKiwuMDI0Njg6PD5AQkRGSEpMTlBSVFZYWlxeYGJkZmhqbG5wcnR2eHp8foCChIaIioyOkJKUlpianJ6goqSmqKqsrrCytLa4ury+wMLExsjKzM7Q0tTW2Nrc3uDi5Obo6uzu8PL09vj6/P4bGR8dExEXFQsJDw0DAQcFOzk/PTMxNzUrKS8tIyEnJVtZX11TUVdVS0lPTUNBR0V7eX99c3F3dWtpb21jYWdlm5mfnZORl5WLiY+Ng4GHhbu5v72zsbe1q6mvraOhp6Xb2d/d09HX1cvJz83DwcfF+/n//fPx9/Xr6e/t4+Hn5QADBgUMDwoJGBseHRQXEhEwMzY1PD86OSgrLi0kJyIhYGNmZWxvaml4e359dHdycVBTVlVcX1pZSEtOTURHQkHAw8bFzM/Kydjb3t3U19LR8PP29fz/+vno6+7t5Ofi4aCjpqWsr6qpuLu+vbS3srGQk5aVnJ+amYiLjo2Eh4KBm5idnpeUkZKDgIWGj4yJiquora6npKGis7C1tr+8ubr7+P3+9/Tx8uPg5ebv7Onqy8jNzsfEwcLT0NXW39zZ2ltYXV5XVFFSQ0BFRk9MSUpraG1uZ2RhYnNwdXZ/fHl6Ozg9Pjc0MTIjICUmLywpKgsIDQ4HBAECExAVFh8cGRoADhwSODYkKnB+bGJIRlRa4O788tjWxMqQnoyCqKa0utvVx8nj7f/xq6W3uZOdj4E7NScpAw0fEUtFV1lzfW9hraOxv5WbiYfd08HP5ev5901DUV91e2lnPTMhLwULGRd2eGpkTkBSXAYIGhQ+MCIslpiKhK6gsrzm6Pr03tDCzEFPXVN5d2VrMT8tIwkHFRuhr72zmZeFi9HfzcPp5/X7mpSGiKKsvrDq5Pb40tzOwHp0ZmhCTF5QCgQWGDI8LiDs4vD+1NrIxpySgI6kqri2DAIQHjQ6KCZ8cmBuREpYVjc5KyUPARMdR0lbVX9xY23X2cvF7+Hz/aepu7WfkYONAA0aFzQ5LiNoZXJ/XFFGS9Ddysfk6f7zuLWir4yBlpu7tqGsj4KVmNPeycTn6v3wa2ZxfF9SRUgDDhkUNzotIG1gd3pZVENOBQgfEjE8Kya9sKeqiYSTntXYz8Lh7Pv21tvMweLv+PW+s6SpioeQnQYLHBEyPyglbmN0eVpXQE3a18DN7uP0+bK/qKWGi5yRCgcQHT4zJClib3h1VltMQWFse3ZVWE9CCQQTHj0wJyqxvKumhYifktnUw87t4Pf6t7qtoIOOmZTf0sXI6+bx/GdqfXBTXklEDwIVGDs2ISwMARYbODUiL2RpfnNQXUpH3NHGy+jl8v+0ua6jgI2alwALFh0sJzoxWFNORXR/Ymmwu6atnJeKgejj/vXEz9LZe3BtZldcQUojKDU+DwQZEsvA3dbn7PH6k5iFjr+0qaL2/eDr2tHMx66luLOCiZSfRk1QW2phfHceFQgDMjkkL42Gm5Chqre81d7DyPny7+Q9NisgERoHDGVuc3hJQl9U9/zh6tvQzcavpLmyg4iVnkdMUVprYH12HxQJAjM4JS6Mh5qRoKu2vdTfwsn48+7lPDcqIRAbBg1kb3J5SENeVQEKFxwtJjswWVJPRHV+Y2ixuqesnZaLgOni//TFztPYenFsZ1ZdQEsiKTQ/DgUYE8rB3Nfm7fD7kpmEj761qKMACRIbJC02P0hBWlNsZX53kJmCi7S9pq/Y0crD/PXu5zsyKSAfFg0Ec3phaFdeRUyrormwj4adlOPq8fjHztXcdn9kbVJbQEk+NywlGhMIAebv9P3Cy9DZrqe8tYqDmJFNRF9WaWB7cgUMFx4hKDM63dTPxvnw6+KVnIeOsbijquzl/vfIwdrTpK22v4CJkpt8dW5nWFFKQzQ9Ji8QGQIL197FzPP64eiflo2Eu7KpoEdOVVxjanF4DwYdFCsiOTCak4iBvrespdLbwMn2/+TtCgMYES4nPDVCS1BZZm90faGos7qFjJee6eD78s3E39YxOCMqFRwHDnlwa2JdVE9GY3x3e/Jrb8UwAWcr/terdsqCyX36WUfwrdSir5ykcsC3/ZMmNj/3zDSl5fFx2DEVBMcjwxiWBZoHEoDi6yeydQmDLBobblqgUjvWsynjL4RT0QDtIPyxW2rLvjlKTFjP0O+q+0NNM4VF+QJ/UDyfqFGjQI+SnTj1vLbaIRD/89LNDBPsX5dEF8Snfj1kXRlzYIFP3CIqkIhG7rgU3l4L2+AyOgpJBiRcwtOsYpGV5HnnyDdtjdVOqWxW9Opleq4IunglLhymtMbo3XQfS72LinA+tWZIA/YOYTVXuYbBHZ7h+JgRadmOlJseh+nOVSjfjKGJDb/mQmhBmS0PsFS7FlIJatUwNqU4v0CjnoHz1/t84zmCmy//hzSOQ0TE3unLVHuUMqbCIz3uTJULQvrDTgguoWYo2SSydluiSW2L0SVy+PZkhmiYFtSkXMxdZbaSbHBIUP3tudpeFUZXp42dhJDYqwCMvNMK9+RYBbizRQbQLB6Pyj8PAsGvvQMBE4prOpERQU9n3OqX8s/O8LTmc5asdCLnrTWF4vk36Bx1325H8RpxHSnFiW+3Yg6qGL4b/FY+S8bSeSCa28D+eM1a9B/dqDOIB8cxsRIQWSeA7F9gUX+pGbVKDS3lep+TyZzvoOA7Ta4q9bDI67s8g1OZYRcrBH66d9Ym4WkUY1UhDH2NAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuNAQIECBAgQIAbNmzYq02aL168Y8aXNWrUs33678WROXLk071hwp8lSpQzZsyDHTp06MuN", 256, !1), | |
| t = e[0], | |
| n = e[1], | |
| r = e[2], | |
| i = e[3], | |
| s = e[4], | |
| o = e[5], | |
| u = e[6], | |
| a = e[7], | |
| f = e[8]); | |
| var h = 128, p, d, v = 4, m, g; | |
| switch (c.length * 8) { | |
| case 128: | |
| p = 128, | |
| d = 4, | |
| m = 10; | |
| break; | |
| case 192: | |
| p = 192, | |
| d = 6, | |
| m = 12; | |
| break; | |
| case 256: | |
| p = 256, | |
| d = 8, | |
| m = 14; | |
| break; | |
| default: | |
| throw new Error("Unsupported keyLength") | |
| } | |
| var y = function(e) { | |
| var t = e[1]; | |
| e[1] = e[5], | |
| e[5] = e[9], | |
| e[9] = e[13], | |
| e[13] = t, | |
| t = e[2], | |
| e[2] = e[10], | |
| e[10] = t, | |
| t = e[6], | |
| e[6] = e[14], | |
| e[14] = t, | |
| t = e[15], | |
| e[15] = e[11], | |
| e[11] = e[7], | |
| e[7] = e[3], | |
| e[3] = t | |
| } | |
| , b = function(e) { | |
| var t = e[13]; | |
| e[13] = e[9], | |
| e[9] = e[5], | |
| e[5] = e[1], | |
| e[1] = t, | |
| t = e[10], | |
| e[10] = e[2], | |
| e[2] = t, | |
| t = e[14], | |
| e[14] = e[6], | |
| e[6] = t, | |
| t = e[3], | |
| e[3] = e[7], | |
| e[7] = e[11], | |
| e[11] = e[15], | |
| e[15] = t | |
| } | |
| , w = function(e) { | |
| var r = e[0] | |
| , i = e[1] | |
| , s = e[2] | |
| , o = e[3] | |
| , u = e[4] | |
| , a = e[5] | |
| , f = e[6] | |
| , l = e[7] | |
| , c = e[8] | |
| , h = e[9] | |
| , p = e[10] | |
| , d = e[11] | |
| , v = e[12] | |
| , m = e[13] | |
| , g = e[14] | |
| , y = e[15]; | |
| e[0] = t[r] ^ n[i] ^ s ^ o, | |
| e[1] = r ^ t[i] ^ n[s] ^ o, | |
| e[2] = r ^ i ^ t[s] ^ n[o], | |
| e[3] = n[r] ^ i ^ s ^ t[o], | |
| e[4] = t[u] ^ n[a] ^ f ^ l, | |
| e[5] = u ^ t[a] ^ n[f] ^ l, | |
| e[6] = u ^ a ^ t[f] ^ n[l], | |
| e[7] = n[u] ^ a ^ f ^ t[l], | |
| e[8] = t[c] ^ n[h] ^ p ^ d, | |
| e[9] = c ^ t[h] ^ n[p] ^ d, | |
| e[10] = c ^ h ^ t[p] ^ n[d], | |
| e[11] = n[c] ^ h ^ p ^ t[d], | |
| e[12] = t[v] ^ n[m] ^ g ^ y, | |
| e[13] = v ^ t[m] ^ n[g] ^ y, | |
| e[14] = v ^ m ^ t[g] ^ n[y], | |
| e[15] = n[v] ^ m ^ g ^ t[y] | |
| } | |
| , E = function(e) { | |
| var t = e[0] | |
| , n = e[1] | |
| , u = e[2] | |
| , a = e[3] | |
| , f = e[4] | |
| , l = e[5] | |
| , c = e[6] | |
| , h = e[7] | |
| , p = e[8] | |
| , d = e[9] | |
| , v = e[10] | |
| , m = e[11] | |
| , g = e[12] | |
| , y = e[13] | |
| , b = e[14] | |
| , w = e[15]; | |
| e[0] = r[t] ^ s[n] ^ i[u] ^ o[a], | |
| e[1] = o[t] ^ r[n] ^ s[u] ^ i[a], | |
| e[2] = i[t] ^ o[n] ^ r[u] ^ s[a], | |
| e[3] = s[t] ^ i[n] ^ o[u] ^ r[a], | |
| e[4] = r[f] ^ s[l] ^ i[c] ^ o[h], | |
| e[5] = o[f] ^ r[l] ^ s[c] ^ i[h], | |
| e[6] = i[f] ^ o[l] ^ r[c] ^ s[h], | |
| e[7] = s[f] ^ i[l] ^ o[c] ^ r[h], | |
| e[8] = r[p] ^ s[d] ^ i[v] ^ o[m], | |
| e[9] = o[p] ^ r[d] ^ s[v] ^ i[m], | |
| e[10] = i[p] ^ o[d] ^ r[v] ^ s[m], | |
| e[11] = s[p] ^ i[d] ^ o[v] ^ r[m], | |
| e[12] = r[g] ^ s[y] ^ i[b] ^ o[w], | |
| e[13] = o[g] ^ r[y] ^ s[b] ^ i[w], | |
| e[14] = i[g] ^ o[y] ^ r[b] ^ s[w], | |
| e[15] = s[g] ^ i[y] ^ o[b] ^ r[w] | |
| } | |
| , S = function(e, t) { | |
| return [e[0] ^ t[0], e[1] ^ t[1], e[2] ^ t[2], e[3] ^ t[3]] | |
| } | |
| , x = function(e, t, n) { | |
| for (var r = 0; r < e.length; r += 1) | |
| e[r] ^= t[r + n] | |
| } | |
| , T = function(e) { | |
| var t = e[0]; | |
| e[0] = e[1], | |
| e[1] = e[2], | |
| e[2] = e[3], | |
| e[3] = t | |
| } | |
| , N = function(e) { | |
| for (var t = 0; t < e.length; t += 1) | |
| e[t] = u[e[t]] | |
| } | |
| , C = function(e) { | |
| for (var t = 0; t < e.length; t += 1) | |
| e[t] = a[e[t]] | |
| } | |
| , k = function(e, t) { | |
| return [e[4 * t], e[4 * t + 1], e[4 * t + 2], e[4 * t + 3]] | |
| } | |
| , L = function(e, t, n, r) { | |
| e[4 * n] = t[4 * r], | |
| e[4 * n + 1] = t[4 * r + 1], | |
| e[4 * n + 2] = t[4 * r + 2], | |
| e[4 * n + 3] = t[4 * r + 3] | |
| } | |
| , A = function(e) { | |
| var t, n = [], r = 0; | |
| while (r < 4 * d) | |
| n.push(e[r++]); | |
| r = d; | |
| while (r < v * (m + 1)) { | |
| t = k(n, r - 1); | |
| if (r % d === 0) { | |
| var i = r / d | |
| , s = [f[i], 0, 0, 0]; | |
| T(t), | |
| N(t), | |
| t = S(t, s) | |
| } else | |
| d > 6 && r % d === 4 && N(t); | |
| var o = S(k(n, r - d), t); | |
| L(n, o, r, 0), | |
| r += 1 | |
| } | |
| return n | |
| } | |
| ; | |
| return g = A(c), | |
| { | |
| encrypt: function(e) { | |
| var t = e, n; | |
| x(t, g, 0); | |
| for (n = 1; n <= m - 1; n += 1) | |
| N(t), | |
| y(t), | |
| w(t), | |
| x(t, g, 4 * n * v); | |
| return N(t), | |
| y(t), | |
| x(t, g, 4 * m * v), | |
| t | |
| }, | |
| decrypt: function(e) { | |
| var t = e, n; | |
| x(t, g, 4 * m * v); | |
| for (n = m - 1; n >= 1; n -= 1) | |
| b(t), | |
| C(t), | |
| x(t, g, 4 * n * v), | |
| E(t); | |
| return b(t), | |
| C(t), | |
| x(t, g, 0), | |
| t | |
| }, | |
| clear: function() {}, | |
| keyLength: p, | |
| blockSize: h | |
| } | |
| } | |
| } | |
| }() | |
| , g = g || {}; | |
| g.pkcsv7 = function(e) { | |
| function t(t) { | |
| var n = t.length - 1 >= 0 ? t.length - 1 : 0 | |
| , r = t[n] | |
| , i = r.length | |
| , s = i === e; | |
| if (s) { | |
| var o = [], u; | |
| for (u = 0; u < e; u += 1) | |
| o.push(e); | |
| t.push(o) | |
| } else { | |
| var a = e - i & 255; | |
| while (r.length !== e) | |
| r.push(a) | |
| } | |
| } | |
| function n(t) { | |
| var n = !0; | |
| t.length % e !== 0 && (n = !1); | |
| var r = t.slice(-e) | |
| , i = r[r.length - 1]; | |
| for (var s = 0; s < e; s++) { | |
| var o = e - s <= i | |
| , u = r[s] === i; | |
| n = (o ? u : !0) && n | |
| } | |
| var a = n ? i : 0; | |
| return t.length -= a, | |
| n | |
| } | |
| return { | |
| pad: t, | |
| unpad: n | |
| } | |
| } | |
| ; | |
| var y = function(e) { | |
| function i(e) { | |
| var n = []; | |
| a = a.concat(e); | |
| var r = Math.floor(a.length / t); | |
| for (var i = 0; i < r; i++) | |
| n.push(a.slice(i * t, (i + 1) * t)); | |
| return a = a.slice(r * t), | |
| n | |
| } | |
| function s(t) { | |
| var n = [], r; | |
| for (var i = 0; i < t.length; i++) | |
| r = l.xorVectors(c, t[i]), | |
| n.push(e.encrypt(r)), | |
| c = n[i]; | |
| return n | |
| } | |
| function o(t) { | |
| var n = [], r, i; | |
| for (var s = 0; s < t.length; s += 1) | |
| r = t[s].slice(0, t[s].length), | |
| i = e.decrypt(r), | |
| n.push(l.xorVectors(c, i)), | |
| c = t[s]; | |
| return n | |
| } | |
| function u() { | |
| a = [], | |
| f = [], | |
| c = null | |
| } | |
| var t = e.blockSize / 8, n = g.pkcsv7(t), r = function(e) { | |
| var t = [], n, r; | |
| for (n = 0; n < e.length; n += 1) { | |
| var i = e[n]; | |
| for (r = 0; r < i.length; r += 1) | |
| t.push(i[r]) | |
| } | |
| return t | |
| } | |
| , a = [], f = [], c; | |
| return { | |
| init: function(e) { | |
| if (e.length !== t) | |
| throw new Error("Invalid iv size"); | |
| c = e.slice() | |
| }, | |
| encrypt: function(e) { | |
| return this.processEncrypt(e), | |
| this.finishEncrypt() | |
| }, | |
| processEncrypt: function(e) { | |
| var t = s(i(e)); | |
| f = f.concat(r(t)); | |
| return | |
| }, | |
| finishEncrypt: function() { | |
| var e = a.length === 1 ? [[a[0]]] : [a]; | |
| n.pad(e); | |
| var t = f.concat(r(s(e))); | |
| return u(), | |
| t | |
| }, | |
| decrypt: function(e) { | |
| return this.processDecrypt(e), | |
| this.finishDecrypt() | |
| }, | |
| processDecrypt: function(e) { | |
| var t = o(i(e)); | |
| f = f.concat(r(t)); | |
| return | |
| }, | |
| finishDecrypt: function() { | |
| var e = f | |
| , t = n.unpad(e); | |
| return u(), | |
| e | |
| } | |
| } | |
| } | |
| , b = null ; | |
| typeof e != "undefined" && (y.workerEncrypt = function(e) { | |
| var t; | |
| b || (b = y(m.aes(e.keyData)), | |
| b.init(e.algorithm.iv)); | |
| if (e.operationSubType === "process") { | |
| b.processEncrypt(e.buffer); | |
| return | |
| } | |
| return e.operationSubType === "finish" ? (t = b.finishEncrypt(), | |
| b = null , | |
| t) : (t = b.encrypt(e.buffer), | |
| b = null , | |
| t) | |
| } | |
| , | |
| y.workerDecrypt = function(e) { | |
| var t; | |
| b || (b = y(m.aes(e.keyData)), | |
| b.init(e.algorithm.iv)); | |
| if (e.operationSubType === "process") { | |
| b.processDecrypt(e.buffer); | |
| return | |
| } | |
| return e.operationSubType === "finish" ? (t = b.finishDecrypt(), | |
| b = null , | |
| t) : (t = b.decrypt(e.buffer), | |
| b = null , | |
| t) | |
| } | |
| , | |
| y.generateKey = function(e) { | |
| if (e.algorithm.length % 8 !== 0) | |
| throw new Error; | |
| return { | |
| type: "keyGeneration", | |
| keyData: E.getBytes(Math.floor(e.algorithm.length / 8)), | |
| keyHandle: { | |
| algorithm: e.algorithm, | |
| extractable: e.extractable, | |
| keyUsage: e.keyUsage, | |
| type: "secret" | |
| } | |
| } | |
| } | |
| , | |
| y.importKey = function(e) { | |
| var t = h.jwkToKey(e.keyData, e.algorithm, ["k"]); | |
| return { | |
| type: "keyImport", | |
| keyData: t.k, | |
| keyHandle: { | |
| algorithm: e.algorithm, | |
| extractable: e.extractable || t.extractable, | |
| keyUsage: e.keyUsage, | |
| type: "secret" | |
| } | |
| } | |
| } | |
| , | |
| y.exportKey = function(e) { | |
| var t = h.keyToJwk(e.keyHandle, e.keyData); | |
| return { | |
| type: "keyExport", | |
| keyHandle: t | |
| } | |
| } | |
| , | |
| e.register("importKey", "aes-cbc", y.importKey), | |
| e.register("exportKey", "aes-cbc", y.exportKey), | |
| e.register("generateKey", "aes-cbc", y.generateKey), | |
| e.register("encrypt", "aes-cbc", y.workerEncrypt), | |
| e.register("decrypt", "aes-cbc", y.workerDecrypt)); | |
| var E = new w, x; | |
| i || (x = function() { | |
| function n() { | |
| function t(t) { | |
| try { | |
| e = c.jsCryptoRunner({ | |
| data: t | |
| }), | |
| (!t.operationSubType || t.operationSubType !== "process") && this.onmessage({ | |
| data: e | |
| }) | |
| } catch (n) { | |
| this.onerror({ | |
| data: n.description, | |
| type: "error" | |
| }) | |
| } | |
| } | |
| var e; | |
| return { | |
| postMessage: t, | |
| onmessage: null , | |
| onerror: null , | |
| terminate: function() {} | |
| } | |
| } | |
| function o(e) { | |
| function s(e, t) {} | |
| function o(e, t) {} | |
| function u(e) { | |
| n = e, | |
| this.result && n({ | |
| target: this | |
| }) | |
| } | |
| function f(e) { | |
| r = e | |
| } | |
| function l() { | |
| return n | |
| } | |
| function c() { | |
| return r | |
| } | |
| function h(t) { | |
| if (t.type === "error") { | |
| this.onerror && this.onerror(t); | |
| return | |
| } | |
| if (t.type === "process") | |
| return; | |
| this.result = e(t.data), | |
| this.oncomplete && this.oncomplete({ | |
| target: this | |
| }); | |
| return | |
| } | |
| var t = null , n = null , r = null , i; | |
| return i = { | |
| dispatchEvent: h, | |
| addEventListener: s, | |
| removeEventListener: o, | |
| result: null | |
| }, | |
| a(i, "oncomplete", null , l, u), | |
| a(i, "onerror", null , c, f), | |
| i | |
| } | |
| function f() { | |
| function e(e) { | |
| switch (e.type) { | |
| case "keyGeneration": | |
| case "keyImport": | |
| case "keyDerive": | |
| return v.add(e.keyHandle, e.keyData), | |
| e.keyHandle; | |
| case "keyExport": | |
| return p(e.keyHandle); | |
| case "keyPairGeneration": | |
| return v.add(e.keyPair.publicKey.keyHandle, e.keyPair.publicKey.keyData), | |
| v.add(e.keyPair.privateKey.keyHandle, e.keyPair.privateKey.keyData), | |
| { | |
| publicKey: e.keyPair.publicKey.keyHandle, | |
| privateKey: e.keyPair.privateKey.keyHandle | |
| }; | |
| default: | |
| throw new Error("Unknown key operation") | |
| } | |
| return | |
| } | |
| return o(e) | |
| } | |
| function h(e) { | |
| function t(e) { | |
| return e = p(e), | |
| e | |
| } | |
| var n = o(t); | |
| return n.process = function(t) { | |
| e.operationSubType = "process", | |
| e.buffer = g.toArray(t), | |
| m.continueJob(this, g.clone(e)) | |
| } | |
| , | |
| n.finish = function() { | |
| e.operationSubType = "finish", | |
| e.buffer = [], | |
| m.continueJob(this, g.clone(e)) | |
| } | |
| , | |
| n.abort = function() { | |
| m.abortJob(this) | |
| } | |
| , | |
| n.onabort = null , | |
| n.onprogress = null , | |
| n.algorithm = e.algorithm || null , | |
| n.key = e.keyHandle || null , | |
| n | |
| } | |
| function p(e) { | |
| return s && e.pop ? (new Uint8Array(e)).buffer : e | |
| } | |
| function d(e) { | |
| e.oncomplete ? e.oncomplete({ | |
| target: e | |
| }) : setTimeout(function() { | |
| d(e) | |
| }, i) | |
| } | |
| function y(t, n) { | |
| if (!e.exists(t, n)) | |
| throw new Error("unsupported algorithm") | |
| } | |
| function S(e) { | |
| var t = v.lookup(e); | |
| if (!t) | |
| throw new Error("key not found"); | |
| return t | |
| } | |
| function x(e, t) { | |
| var n = { | |
| operationType: e | |
| } | |
| , r = w[e]; | |
| for (var i = 0; i < r.length; i += 1) { | |
| var s = b[r[i]] | |
| , o = t[i]; | |
| if (!o) { | |
| if (s.required) | |
| throw new Error(s.name); | |
| continue | |
| } | |
| o.subarray && (o = g.toArray(o)); | |
| if (l.getObjectType(o) !== s.type) | |
| throw new Error(s.name); | |
| s.name === "algorithm" && (o.name = o.name.toLowerCase(), | |
| o.iv && (o.iv = g.toArray(o.iv)), | |
| o.salt && (o.salt = g.toArray(o.salt)), | |
| o.additionalData && (o.additionalData = g.toArray(o.additionalData)), | |
| o.hash && !o.hash.name && l.getObjectType(o.hash) === "String" && (o.hash = { | |
| name: o.hash | |
| })), | |
| n.hasOwnProperty(s.name) ? n[s.name + "1"] = o : n[s.name] = o | |
| } | |
| return n | |
| } | |
| function T(e, t, n) { | |
| var r = x(e, t); | |
| y(e, r.algorithm.name), | |
| r.keyHandle && (r.keyData = S(r.keyHandle)), | |
| r.keyHandle1 && (r.keyData1 = S(r.keyHandle1)), | |
| r.algorithm && r.algorithm.publicKey && (r.additionalKeyData = S(r.algorithm.publicKey)); | |
| var i = n ? f(r) : h(r); | |
| return (n || r.buffer || e === "deriveBits" || e === "wrapKey") && m.runJob(i, r), | |
| i | |
| } | |
| var i = 100 | |
| , v = []; | |
| v.add = function(e, t) { | |
| v.push({ | |
| keyHandle: e, | |
| keyData: t | |
| }) | |
| } | |
| , | |
| v.remove = function(e) { | |
| for (var t = 0; t < v.length; t++) | |
| if (v[t].keyHandle === e) { | |
| v = v.splice(t, 1); | |
| return | |
| } | |
| } | |
| , | |
| v.lookup = function(e) { | |
| for (var t = 0; t < v.length; t++) | |
| if (v[t].keyHandle === e) | |
| return v[t].keyData; | |
| return null | |
| } | |
| ; | |
| var m = function() { | |
| function f() { | |
| l(!u); | |
| for (var e = 0; e < s.length; e++) | |
| if (!s[e].busy) | |
| return s[e]; | |
| return null | |
| } | |
| function l(e) { | |
| for (var t = s.length - 1; t >= 0; t -= 1) | |
| s[t].isWebWorker === e && (s[t].terminate(), | |
| s.splice(t, 1)) | |
| } | |
| function c() { | |
| var e = 0; | |
| for (var t = 0; t < s.length; t++) | |
| s[t].busy || (e += 1); | |
| return e | |
| } | |
| function h(e) { | |
| s.push(e) | |
| } | |
| function p(e) { | |
| for (var t = 0; t < s.length; t++) | |
| if (s[t] === e) { | |
| e.terminate(), | |
| s.splice(t, 1); | |
| return | |
| } | |
| } | |
| function d(e) { | |
| for (var t = 0; t < s.length; t++) | |
| if (s[t].operation === e) | |
| return s[t]; | |
| return null | |
| } | |
| function v(e, t) { | |
| o.push({ | |
| operation: e, | |
| data: t, | |
| id: a++ | |
| }) | |
| } | |
| function m(e) { | |
| e.busy = !1, | |
| e.operation = null ; | |
| if (u) | |
| if (o.length > 0) { | |
| var t = o.shift(); | |
| w(t.operation, t.data) | |
| } else | |
| c() > i && p(e) | |
| } | |
| function g(e) { | |
| var r; | |
| if (u) | |
| try { | |
| r = new Worker(t), | |
| r.postMessage({ | |
| prngSeed: E.getBytes(48) | |
| }), | |
| r.isWebWorker = !0 | |
| } catch (i) { | |
| u = !1, | |
| N.forceSync = !0, | |
| r = n(), | |
| r.isWebWorker = !1 | |
| } | |
| else | |
| r = n(), | |
| r.isWebWorker = !1; | |
| return r.operation = e, | |
| r.busy = !1, | |
| r.onmessage = function(e) { | |
| var t = r.operation; | |
| for (var n = 0; n < o.length; n++) | |
| if (o[n].operation === r.operation) { | |
| var i = o[n]; | |
| o.splice(n, 1), | |
| S(r, i.data); | |
| return | |
| } | |
| t && e.data.type !== "process" && (m(r), | |
| t.dispatchEvent(e)) | |
| } | |
| , | |
| r.onerror = function(e) { | |
| var t = r.operation; | |
| m(r), | |
| t.dispatchEvent(e) | |
| } | |
| , | |
| h(r), | |
| r | |
| } | |
| function y(e) { | |
| var t = d(e); | |
| t && p(t) | |
| } | |
| function b(t, n) { | |
| var i = null ; | |
| u = r && !N.forceSync, | |
| i = f(); | |
| if (u && i === null && s.length >= e) { | |
| v(t, n); | |
| return | |
| } | |
| i === null && (i = g(t)); | |
| if (i === null ) | |
| throw v(t, n), | |
| new Error("could not create new worker"); | |
| i.operation = t, | |
| i.busy = !0, | |
| S(i, n) | |
| } | |
| function w(e, t) { | |
| var n = d(e); | |
| if (n) { | |
| S(n, t); | |
| return | |
| } | |
| b(e, t) | |
| } | |
| function S(e, t) { | |
| u ? (e.data = t, | |
| e.postMessage(t)) : setTimeout(function() { | |
| e.postMessage(t) | |
| }, 0) | |
| } | |
| var e = 15 | |
| , i = 4 | |
| , s = [] | |
| , o = [] | |
| , a = 0; | |
| return { | |
| runJob: b, | |
| continueJob: w, | |
| abortJob: y | |
| } | |
| }() | |
| , g = l | |
| , b = [{ | |
| name: "algorithm", | |
| type: "Object", | |
| required: !0 | |
| }, { | |
| name: "keyHandle", | |
| type: "Object", | |
| required: !0 | |
| }, { | |
| name: "buffer", | |
| type: "Array", | |
| required: !1 | |
| }, { | |
| name: "signature", | |
| type: "Array", | |
| required: !0 | |
| }, { | |
| name: "format", | |
| type: "String", | |
| required: !0 | |
| }, { | |
| name: "keyData", | |
| type: "Array", | |
| required: !0 | |
| }, { | |
| name: "extractable", | |
| type: "Boolean", | |
| required: !1 | |
| }, { | |
| name: "keyUsages", | |
| type: "Array", | |
| required: !1 | |
| }, { | |
| name: "derivedKeyType", | |
| type: "Object", | |
| required: !0 | |
| }, { | |
| name: "length", | |
| type: "Number", | |
| required: !1 | |
| }] | |
| , w = { | |
| encrypt: [0, 1, 2], | |
| decrypt: [0, 1, 2], | |
| sign: [0, 1, 2], | |
| verify: [0, 1, 3, 2], | |
| digest: [0, 2], | |
| generateKey: [0, 6, 7], | |
| importKey: [4, 5, 0, 6, 7], | |
| exportKey: [0, 4, 1, 6, 7], | |
| deriveKey: [0, 1, 8, 6, 7], | |
| deriveBits: [0, 1, 9], | |
| wrapKey: [1, 1, 0], | |
| unwrapKey: [2, 0, 1, 6, 7] | |
| } | |
| , N = { | |
| encrypt: function(e, t, n) { | |
| return T("encrypt", arguments, 0) | |
| }, | |
| decrypt: function(e, t, n) { | |
| return T("decrypt", arguments, 0) | |
| }, | |
| sign: function(e, t, n) { | |
| return T("sign", arguments, 0) | |
| }, | |
| verify: function(e, t, n, r) { | |
| return T("verify", arguments, 0) | |
| }, | |
| digest: function(e, t) { | |
| return T("digest", arguments, 0) | |
| }, | |
| generateKey: function(e, t, n) { | |
| return T("generateKey", arguments, 1) | |
| }, | |
| deriveKey: function(e, t, n, r, i) { | |
| return T("deriveKey", arguments, 1) | |
| }, | |
| deriveBits: function(e, t, n) { | |
| return T("deriveBits", arguments, 0) | |
| }, | |
| importKey: function(e, t, n, r, i) { | |
| return T("importKey", arguments, 1) | |
| }, | |
| exportKey: function(e, t) { | |
| return T("exportKey", [t.algorithm, e, t], 1) | |
| }, | |
| wrapKey: function(e, t, n) { | |
| return T("wrapKey", arguments, 0) | |
| }, | |
| unwrapKey: function(e, t, n, r, i) { | |
| return T("unwrapKey", arguments, 1) | |
| } | |
| }; | |
| return N | |
| }()); | |
| var T = { | |
| subtle: x, | |
| getRandomValues: function(e) { | |
| var t, n = E.getBytes(e.length); | |
| for (t = 0; t < e.length; t += 1) | |
| e[t] = n[t]; | |
| return e | |
| }, | |
| initPrng: function(e) { | |
| var t = Object.prototype.toString.call(e); | |
| if (t !== "[object Array]" && t !== "[object Uint8Array]") | |
| throw new Error("entropyData must be a Array or Uint8Array"); | |
| N && N.reseed(e), | |
| E.reseed(N.read(48)), | |
| n = !0 | |
| }, | |
| toBase64: function(e, t) { | |
| return l.toBase64(e, !1) | |
| }, | |
| base64ToString: function(e) { | |
| return l.base64ToString(e) | |
| }, | |
| utilities: l, | |
| sha256: v.sha256, | |
| url: t | |
| }; | |
| typeof cryptoMath != "undefined" && (T.cryptoMath = cryptoMath), | |
| typeof testInterface != "undefined" && (T.testInterface = testInterface); | |
| var N; | |
| if (!i) { | |
| N = N || new S, | |
| N.init(); | |
| var C = N.read(48); | |
| E.init(C) | |
| } | |
| return T | |
| }(); | |
| return t | |
| }), | |
| define("utils/common/msCryptoAdapter", ["require", "exports", "module", "vendor/msrcrypto.aes"], function(e, t) { | |
| function r(e) { | |
| return new Promise(function(t, n) { | |
| e.oncomplete = function(e) { | |
| t(e.target.result) | |
| } | |
| , | |
| e.onerror = n | |
| } | |
| ) | |
| } | |
| var n = e("vendor/msrcrypto.aes"); | |
| n.subtle.forceSync = !0, | |
| t.getRandomValues = n.getRandomValues, | |
| t.subtle = { | |
| generateKey: function(t, i, s) { | |
| return r(n.subtle.generateKey(t, i, s)) | |
| }, | |
| exportKey: function(t, i) { | |
| return r(n.subtle.exportKey(t, i)) | |
| }, | |
| importKey: function(t, i, s, o, u) { | |
| return r(n.subtle.importKey(t, i, s, o, u)) | |
| }, | |
| encrypt: function(t, i, s) { | |
| return r(n.subtle.encrypt(t, i, s)) | |
| }, | |
| decrypt: function(t, i, s) { | |
| return r(n.subtle.decrypt(t, i, s)) | |
| } | |
| } | |
| }), | |
| define("utils/common/encryption", ["require", "exports", "module", "utils/common/msCryptoAdapter", "browser/window"], function(e, t) { | |
| function u(e) { | |
| var t = 6e4 | |
| , n = [] | |
| , r = []; | |
| if (e.length <= t) | |
| return Array.apply(null , e); | |
| for (var i = 0, s = e.length; i < s; i += t) | |
| n.push(e.subarray(i, i + t)); | |
| return n.forEach(function(e) { | |
| r = r.concat(Array.apply(null , e)) | |
| }), | |
| r | |
| } | |
| function a(e) { | |
| var t = new Uint8Array(e.length); | |
| for (var n = 0; n < e.length; n++) | |
| t[n] = e.charCodeAt(n); | |
| return t | |
| } | |
| function f(e) { | |
| var t = 6e4 | |
| , n = [] | |
| , r = new Uint8Array(e) | |
| , i = ""; | |
| if (r.length <= t) | |
| return String.fromCharCode.apply(null , r); | |
| for (var s = 0, o = r.length; s < o; s += t) | |
| n.push(r.subarray(s, s + t)); | |
| return n.forEach(function(e) { | |
| i = i.concat(String.fromCharCode.apply(null , e)) | |
| }), | |
| i | |
| } | |
| function l(e, t) { | |
| return { | |
| data: f(t), | |
| iv: u(e) | |
| } | |
| } | |
| var n = e("utils/common/msCryptoAdapter"), r = e("browser/window"), i = "Aes-cbc", s = ["encrypt", "decrypt"], o; | |
| r.crypto ? r.crypto.webkitSubtle ? o = { | |
| crypto: { | |
| getRandomValues: r.crypto.getRandomValues.bind(r.crypto), | |
| subtle: r.crypto.webkitSubtle | |
| }, | |
| importedKeyProcessor: a, | |
| exportedKeyProcessor: f | |
| } : o = { | |
| crypto: r.crypto, | |
| importedKeyProcessor: JSON.parse, | |
| exportedKeyProcessor: JSON.stringify | |
| } : o = { | |
| crypto: n, | |
| importedKeyProcessor: a, | |
| exportedKeyProcessor: f | |
| }, | |
| t.generateEncryptionKey = function() { | |
| return o.crypto.subtle.generateKey({ | |
| name: i, | |
| length: 256 | |
| }, !0, s) | |
| } | |
| , | |
| t.exportEncryptionKey = function(e) { | |
| return o.crypto.subtle.exportKey("jwk", e).then(o.exportedKeyProcessor) | |
| } | |
| , | |
| t.importEncryptionKey = function(e) { | |
| return o.crypto.subtle.importKey("jwk", o.importedKeyProcessor(e), { | |
| name: i | |
| }, !0, s) | |
| } | |
| , | |
| t.encrypt = function(e, t) { | |
| var n, r = { | |
| name: i | |
| }; | |
| return new Promise(function(i, s) { | |
| function u(e) { | |
| i(l(r.iv, e)) | |
| } | |
| try { | |
| n = a(encodeURI(JSON.stringify(t))) | |
| } catch (f) { | |
| s(f); | |
| return | |
| } | |
| r.iv = o.crypto.getRandomValues(new Uint8Array(16)), | |
| o.crypto.subtle.encrypt(r, e, n).then(u, s) | |
| } | |
| ) | |
| } | |
| , | |
| t.decrypt = function(e, t) { | |
| var n, r; | |
| return !t || !t.data ? Promise.reject("Invalid encrypted data") : (n = { | |
| name: i, | |
| iv: new Uint8Array(t.iv) | |
| }, | |
| r = a(t.data), | |
| new Promise(function(t, i) { | |
| function s(e) { | |
| try { | |
| t(JSON.parse(decodeURI(f(e)))) | |
| } catch (n) { | |
| i(n); | |
| return | |
| } | |
| } | |
| o.crypto.subtle.decrypt(n, e, r).then(s, i) | |
| } | |
| )) | |
| } | |
| }), | |
| define("utils/common/cache/keyHasher", ["require", "lodash-compat", "constants/common"], function(e) { | |
| function r(e, r) { | |
| function s(e, t) { | |
| return t.key === e | |
| } | |
| function o(e, t) { | |
| return t.hash === e | |
| } | |
| var i = { | |
| cursor: 0, | |
| map: [] | |
| }; | |
| this.fillMap = function(e) { | |
| e !== null && (i = e) | |
| } | |
| , | |
| this.getHashByKey = function(o) { | |
| if (o === n.INTERNAL_KEYS.KEYS_MAP) | |
| return o; | |
| var u = t.find(i.map, s.bind(null , o)); | |
| return u && u.hash ? u.hash : (u = "key-" + i.cursor, | |
| r && (u += "-" + o), | |
| i.cursor++, | |
| i.map.push({ | |
| key: o, | |
| hash: u | |
| }), | |
| e(n.INTERNAL_KEYS.KEYS_MAP, i), | |
| u) | |
| } | |
| , | |
| this.getKeyByHash = function(e) { | |
| var n = t.find(i.map, o.bind(null , e)); | |
| return n && n.key ? n.key : e | |
| } | |
| , | |
| this.removeKeyFromMap = function(r) { | |
| var o = t.remove(i.map, s.bind(null , r)); | |
| o.length && e(n.INTERNAL_KEYS.KEYS_MAP, i) | |
| } | |
| } | |
| var t = e("lodash-compat") | |
| , n = e("constants/common").cache; | |
| return { | |
| build: function(e, t) { | |
| return new r(e,t) | |
| } | |
| } | |
| }), | |
| define("utils/common/cache/provider", ["require", "constants/common", "services/serviceLocator", "constants/common", "browser/window", "utils/common/settablePromise", "utils/common/encryption", "utils/common/cache/keyHasher", "lodash-compat"], function(e) { | |
| function l() { | |
| function b(e, t, n) { | |
| if (!l.log) | |
| return | |
| } | |
| function w(t) { | |
| if (l.plainData) { | |
| var n = s.build(); | |
| return n.resolve(JSON.stringify(t)), | |
| n | |
| } | |
| return o.encrypt(e, t) | |
| } | |
| function E(t) { | |
| if (l.plainData) { | |
| var n = s.build(); | |
| return n.resolve(JSON.parse(t)), | |
| n | |
| } | |
| return o.decrypt(e, t) | |
| } | |
| function S() { | |
| y.getSensitiveItem(t.INTERNAL_KEYS.KEYS_MAP).then(m.fillMap).then(c.resolve, c.resolve) | |
| } | |
| function x(e) { | |
| return i.localStorage.getItem(C(e)) | |
| } | |
| function T(e) { | |
| return i.localStorage.removeItem(C(e)) | |
| } | |
| function N(e, t) { | |
| return i.localStorage.setItem(C(e), t) | |
| } | |
| function C(e) { | |
| return h + e | |
| } | |
| function k(e) { | |
| return i.localStorage.hasOwnProperty(e) && p.test(e) | |
| } | |
| function L(e, t) { | |
| return Object.keys(i.localStorage).reduce(function(n, r) { | |
| var i = m.getKeyByHash(r.replace(p, "")); | |
| return A(r, i, e, t) ? n.concat(i) : n | |
| }, []) | |
| } | |
| function A(e, n, r, i) { | |
| var s = i ? i.test(n) : !0; | |
| return k(e) && s && (r || e !== C(t.INTERNAL_KEYS.VERSION)) | |
| } | |
| function O(e) { | |
| L(e).forEach(function(e) { | |
| i.localStorage.removeItem(C(e)) | |
| }) | |
| } | |
| var e, f, l = { | |
| log: !1, | |
| showKeys: !1, | |
| plainData: !1 | |
| }, c = s.build(), h = t.PREFIX_KEYWORD + "|", p = new RegExp("^" + t.PREFIX_KEYWORD + "\\|"), d = n.resolve(r.serviceLocator.FEATURE_FLAGS).isFeatureOn(r.featureFlags.DEACTIVATE_CACHE), v = {}, m, g = {}, y = this; | |
| y.init = function(n, r) { | |
| function w(n) { | |
| function u(t) { | |
| o.importEncryptionKey(t.response).then(function(t) { | |
| e = t, | |
| p("Key decrypted -> initialization completed"), | |
| n() | |
| }, l) | |
| } | |
| function a(e) { | |
| N(t.INTERNAL_KEYS.ENCRYPTION_KEY, e.response) | |
| } | |
| function f(t) { | |
| e = t, | |
| o.exportEncryptionKey(e).then(function(e) { | |
| s.encrypt(e).then(a) | |
| }), | |
| p("New key generated -> initialization completed"), | |
| n() | |
| } | |
| function l() { | |
| p("KES not reachable, deactivating cache and completing initialization"), | |
| d = !0, | |
| n() | |
| } | |
| function c() { | |
| p("Starting with fresh cache"), | |
| i && O(), | |
| o.generateEncryptionKey().then(f, l) | |
| } | |
| var r; | |
| if (d) { | |
| p("Cache is deactivated -> initialization completed"), | |
| n(); | |
| return | |
| } | |
| r = x(t.INTERNAL_KEYS.ENCRYPTION_KEY), | |
| r ? (p("Getting key from KES"), | |
| s.decrypt(r).then(u, c)) : c() | |
| } | |
| var i = !0, s, h, p = b.bind(y, "[Init]"), v = t.VERSION; | |
| a.merge(l, r); | |
| if (f) | |
| return f; | |
| a.forEach(l, function(e, t) { | |
| if (t === "log") | |
| return; | |
| e && (v += "|" + t) | |
| }), | |
| m = u.build(y.setSensitiveItem, l.showKeys), | |
| h = x(t.INTERNAL_KEYS.VERSION), | |
| s = new n; | |
| if (h !== v) { | |
| h ? (p("Version changed from " + h + " to " + v), | |
| O()) : (p("Version not found"), | |
| O(!0)), | |
| i = !1; | |
| try { | |
| N(t.INTERNAL_KEYS.VERSION, v) | |
| } catch (g) { | |
| if (g.name !== "QuotaExceededError") | |
| throw g; | |
| p("Deactivating cache as storage is locked"), | |
| d = !0 | |
| } | |
| } | |
| return f = (new Promise(w)).then(S).then(c), | |
| f | |
| } | |
| , | |
| y.isDeactivated = function() { | |
| return d | |
| } | |
| , | |
| y.destroy = function(e) { | |
| !d && e && f && O(), | |
| f = null , | |
| v = {}, | |
| g = {} | |
| } | |
| , | |
| y.getAllKeys = function(e) { | |
| return new Promise(function(t) { | |
| if (d) { | |
| t([]); | |
| return | |
| } | |
| c.then(function() { | |
| t(L(!1, e)) | |
| }) | |
| } | |
| ) | |
| } | |
| , | |
| y.setSensitiveItem = function(e, t, n) { | |
| function u() { | |
| function n(t) { | |
| var n = m.getHashByKey(e); | |
| N(n, JSON.stringify(t)), | |
| o("encrypted"), | |
| s.resolvePromise(), | |
| delete v[e] | |
| } | |
| o("encrypting", t), | |
| w(g[e]).then(n, function(e) { | |
| o("Encryption failed"), | |
| s.rejectPromise(e) | |
| }) | |
| } | |
| function a() { | |
| o("Starting new writing operation with delay of " + n + "ms"), | |
| s.promise = new Promise(function(e, t) { | |
| s.resolvePromise = e, | |
| s.rejectPromise = t, | |
| s.timeout = i.setTimeout(function() { | |
| c.then(u) | |
| }, n) | |
| } | |
| ), | |
| v[e] = s | |
| } | |
| function f() { | |
| o("Resetting writing operation timeout"), | |
| i.clearTimeout(s.timeout), | |
| s.timeout = i.setTimeout(function() { | |
| c.then(u) | |
| }, n) | |
| } | |
| var s = v[e] || {} | |
| , o = b.bind(y, "[SetSensitiveItem: " + e + "]"); | |
| return isNaN(n) && (n = r.cache.DEFAULT_BUFFER_TIMEOUT), | |
| g[e] = t, | |
| d ? new Promise(function(e) { | |
| o("Cache deactivated, resolving"), | |
| e() | |
| } | |
| ) : (s.promise ? f() : a(), | |
| s.promise) | |
| } | |
| , | |
| y.setItem = function(e, t) { | |
| var n = b.bind(y, "[SetItem: " + e + "]"); | |
| return new Promise(function(r, i) { | |
| c.then(function() { | |
| g[e] = t; | |
| if (d) { | |
| n("Cache deactivated, resolving"), | |
| r(); | |
| return | |
| } | |
| try { | |
| var s = m.getHashByKey(e); | |
| N(s, JSON.stringify(t)), | |
| n("stored"), | |
| r() | |
| } catch (o) { | |
| n("storage failed", o), | |
| i(o) | |
| } | |
| }) | |
| } | |
| ) | |
| } | |
| , | |
| y.getSensitiveItem = function(e) { | |
| function r(t, r) { | |
| var i; | |
| n("Getting"); | |
| if (d) { | |
| n("Cache deactivated, returning internal value", g[e]), | |
| t(g[e] || null ); | |
| return | |
| } | |
| if (typeof g[e] != "undefined") { | |
| n("Retrieved value already before, returning it", g[e]), | |
| t(g[e]); | |
| return | |
| } | |
| var s = m.getHashByKey(e); | |
| i = x(s); | |
| if (!i) { | |
| n("No data found in storage"), | |
| t(null ); | |
| return | |
| } | |
| try { | |
| i = JSON.parse(i) | |
| } catch (o) { | |
| n("Parsing of stored data failed"), | |
| r(o) | |
| } | |
| E(i).then(function(r) { | |
| g[e] = r, | |
| n("Decrypted", r), | |
| t(r) | |
| }, function(e) { | |
| n("Decryption failed", e), | |
| r(e) | |
| }) | |
| } | |
| var n = b.bind(y, "[GetSensitiveItem: " + e + "]"); | |
| return new Promise(function(n, i) { | |
| e === t.INTERNAL_KEYS.KEYS_MAP ? r(n, i) : c.then(r.bind(null , n, i)) | |
| } | |
| ) | |
| } | |
| , | |
| y.getSensitiveItems = function(e) { | |
| var t = s.build(); | |
| return y.getAllKeys(e).then(function(e) { | |
| var n = e.reduce(function(e, t) { | |
| return e.concat(y.getSensitiveItem(t)) | |
| }, []); | |
| Promise.all(n).then(t.resolve, t.reject) | |
| }).catch(t.reject), | |
| t | |
| } | |
| , | |
| y.getItem = function(e) { | |
| function n(n, r) { | |
| var i; | |
| t("Getting"); | |
| if (d) { | |
| t("Cache deactivated, returning internal value", g[e]), | |
| n(g[e] || null ); | |
| return | |
| } | |
| if (typeof g[e] != "undefined") { | |
| t("Retrieved value already before, returning it", g[e]), | |
| n(g[e]); | |
| return | |
| } | |
| var s = m.getHashByKey(e); | |
| i = x(s); | |
| if (!i) { | |
| t("No data found in storage"), | |
| n(null ); | |
| return | |
| } | |
| try { | |
| i = JSON.parse(i), | |
| t("Found", i), | |
| n(i) | |
| } catch (o) { | |
| t("Parsing of stored data failed"), | |
| r(o) | |
| } | |
| } | |
| var t = b.bind(y, "[GetItem: " + e + "]"); | |
| return new Promise(function(e, t) { | |
| c.then(n.bind(null , e, t)) | |
| } | |
| ) | |
| } | |
| , | |
| y.removeItem = function(e) { | |
| var t = b.bind(y, "[RemoveItem: " + e + "]"); | |
| return new Promise(function(n) { | |
| c.then(function() { | |
| delete g[e], | |
| d || (T(m.getHashByKey(e)), | |
| m.removeKeyFromMap(e), | |
| typeof v[e] != "undefined" && (t("Item is removed prior encryption timeout finished. Cancelling encryption."), | |
| i.clearTimeout(v[e].timeout), | |
| v[e].rejectPromise(), | |
| delete v[e])), | |
| t("Removed"), | |
| n() | |
| }) | |
| } | |
| ) | |
| } | |
| } | |
| var t = e("constants/common").cache | |
| , n = e("services/serviceLocator") | |
| , r = e("constants/common") | |
| , i = e("browser/window") | |
| , s = e("utils/common/settablePromise") | |
| , o = e("utils/common/encryption") | |
| , u = e("utils/common/cache/keyHasher") | |
| , a = e("lodash-compat") | |
| , f = "[CacheProvider]"; | |
| return l | |
| }), | |
| define("utils/common/cache/instance", ["require", "exports", "module", "utils/common/cache/provider"], function(e, t) { | |
| var n = e("utils/common/cache/provider"), r; | |
| t.get = function() { | |
| return r || (r = new n), | |
| r | |
| } | |
| }), | |
| define("jSkype/services/contacts/facade", ["require", "jSkype/client", "cafe/enums", "jSkype/constants/data", "utils/common/cache/instance", "constants/common", "jSkype/settings", "jSkype/services/contacts/serviceSettings"], function(e) { | |
| function a(e, f) { | |
| function l(t, n) { | |
| var r = u.getMyContactsEndpoint(t, u.version, n) | |
| , i = f.build().then(function(t) { | |
| return e.get(r, t) | |
| }); | |
| return i.then(function(e) { | |
| var t = e.request.getResponseHeader("ETag"); | |
| t && f.setHeader(a.IF_NONE_MATCH, t) | |
| }), | |
| i | |
| } | |
| function c(t, n) { | |
| return i.get().getItem(r.ETAG).then(function(r) { | |
| return r ? f.setHeader(a.IF_NONE_MATCH, r) : h(), | |
| f.build().then(function(r) { | |
| var i = u.getMyDeltaContactsEndpoint(t, u.version, n); | |
| return e.get(i, r) | |
| }) | |
| }) | |
| } | |
| function h() { | |
| f.setHeader(a.IF_NONE_MATCH, "/") | |
| } | |
| this.init = function() { | |
| h(), | |
| t.get().signInManager.state.when(n.loginState.SignedOut, function() { | |
| f.removeHeader(a.IF_NONE_MATCH) | |
| }) | |
| } | |
| , | |
| this.getMyContacts = function(e, t) { | |
| var n; | |
| return f.setServiceName(u.actions.getMyContacts), | |
| o.isFeatureOn(s.featureFlags.CONTACT_PROFILE_CACHE) ? n = c(e, t) : n = l(e, t), | |
| n | |
| } | |
| , | |
| this.deleteContact = function(t, n, r) { | |
| var i = u.getDeleteContactEndpoint(t, n, r, u.version); | |
| return f.setServiceName(u.actions.deleteContact), | |
| f.build().then(function(t) { | |
| return e.remove(i, t) | |
| }) | |
| } | |
| } | |
| var t = e("jSkype/client") | |
| , n = e("cafe/enums") | |
| , r = e("jSkype/constants/data").storageKeys | |
| , i = e("utils/common/cache/instance") | |
| , s = e("constants/common") | |
| , o = e("jSkype/settings") | |
| , u = e("jSkype/services/contacts/serviceSettings"); | |
| return a.IF_NONE_MATCH = "If-None-Match", | |
| a | |
| }), | |
| define("jSkype/services/contacts/main", ["require", "exports", "module", "jSkype/services/contacts/facade"], function(e, t) { | |
| var n = e("jSkype/services/contacts/facade"), r; | |
| t.getInstance = function(t, i) { | |
| return r || (r = new n(t,i), | |
| r.init()), | |
| r | |
| } | |
| }), | |
| define("jSkype/services/internalPubSub", ["require", "lodash-compat", "swx-pubsub"], function(e) { | |
| function i() { | |
| return r || (r = new n, | |
| t.bindAll(r, "subscribe", "unsubscribe", "publish", "unsubscribeAll")), | |
| r | |
| } | |
| function s() { | |
| r = null | |
| } | |
| var t = e("lodash-compat"), n = e("swx-pubsub").default, r; | |
| return { | |
| get: i, | |
| reset: s | |
| } | |
| }), | |
| define("jSkype/services/stratus/dispatcher", ["require", "jSkype/services/internalPubSub"], function(e) { | |
| var t = e("jSkype/services/internalPubSub"); | |
| return function(n) { | |
| function r(e) { | |
| var t = {}; | |
| return t.responseData = e || {}, | |
| t.moduleName = "stratus", | |
| t.actionName = n, | |
| t | |
| } | |
| this.success = function(e) { | |
| var n = r(e.response); | |
| t.get().publish("stratus:data", n) | |
| } | |
| , | |
| this.error = function(e) { | |
| var n = r(e); | |
| t.get().publish("stratus:error", n) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/stratus/actions", { | |
| GET_PENDING_CONTACT_REQUESTS: "getIncomingContactRequests", | |
| GET_PROFILE: "getProfile", | |
| GET_PROFILES: "getProfiles", | |
| GET_MY_CONTACTS: "getMyContacts", | |
| CONTACT_REQUEST_SENT: "contactRequestSent", | |
| CONTACT_REQUEST_ACCEPTED: "contactRequestAccepted", | |
| CONTACT_REQUEST_DECLINED: "contactRequestDeclined", | |
| SEND_CONTACT_REQUEST: "sendContactRequest", | |
| ACCEPT_CONTACT_REQUEST: "acceptContactRequest", | |
| DECLINE_CONTACT_REQUEST: "declineContactRequest", | |
| BLOCK_CONTACT: "blockContact", | |
| UNBLOCK_CONTACT: "unblockContact", | |
| DELETE_CONTACT: "deleteContact", | |
| SEARCH_DIRECTORY: "searchDirectory", | |
| SEARCH_DIRECTORY_BY_ID: "searchDirectoryById" | |
| }), | |
| define("jSkype/services/clientInfo", ["require", "jSkype/settings", "browser/detect"], function(e) { | |
| function r() { | |
| var e = n.getSystemInfo() | |
| , r = t.settings.lcid || "en-us" | |
| , i = t.settings.country || "n/a" | |
| , s = "os=" + e.osName + "; osVer=" + e.osVersion + "; proc=" + e.platform + "; lcid=" + r + ";"; | |
| return s += " deviceType=" + e.deviceType + "; country=" + i + "; clientName=" + t.settings.biAppName + "; clientVer=" + t.settings.uiVersion, | |
| s | |
| } | |
| var t = e("jSkype/settings") | |
| , n = e("browser/detect"); | |
| return { | |
| getBIAppName: function() { | |
| return t.settings.biAppName | |
| }, | |
| getBIVersion: function() { | |
| return t.settings.uiVersion | |
| }, | |
| getClientInfo: r | |
| } | |
| }), | |
| define("jSkype/constants/common", { | |
| contentTypes: { | |
| FORM_URL_ENCODED: "application/x-www-form-urlencoded", | |
| JSON_V1_0: "application/json; ver=1.0", | |
| JSON_V2_0: "application/json; ver=2.0", | |
| JSON_V3_0: "application/json; ver=3.0" | |
| } | |
| }), | |
| define("jSkype/services/stratus/facade", ["require", "constants/common", "jSkype/settings", "jSkype/services/stratus/serviceSettings", "jSkype/services/stratus/dispatcher", "jSkype/services/stratus/actions", "jSkype/services/clientInfo", "jSkype/constants/common"], function(e) { | |
| function a(e, a) { | |
| function p(e, t) { | |
| a.setOption("payload", e), | |
| a.setOption("contentType", t) | |
| } | |
| this.actions = s, | |
| this.updateAvatar = function(t, n, o) { | |
| var u, l = r.getAvatarUpdateEndPoint(t), c = f(s.UPDATE_AVATAR, t), h = new i(c); | |
| return a.setServiceName(s.UPDATE_AVATAR), | |
| a.setOption("payload", n), | |
| a.setOption("contentType", o), | |
| a.setOption("processData", !1), | |
| u = a.build().then(function(t) { | |
| return e.put(l, t) | |
| }), | |
| u.then(h.success, h.error), | |
| u | |
| } | |
| , | |
| this.getProfile = function() { | |
| var t = r.getProfileEndPoint(); | |
| return a.setServiceName(s.GET_PROFILE), | |
| a.build().then(function(n) { | |
| return e.get(t, n) | |
| }) | |
| } | |
| , | |
| this.getProfiles = function(i) { | |
| var o; | |
| return a.setServiceName(s.GET_PROFILES), | |
| n.isFeatureOn(t.BATCH_PROFILES_V2) ? (o = r.getProfilesEndPointV2(), | |
| p(JSON.stringify({ | |
| usernames: i | |
| }), u.contentTypes.JSON_V1_0)) : (o = r.getProfilesEndPoint(), | |
| p(c(i.map(l)), u.contentTypes.FORM_URL_ENCODED)), | |
| a.build().then(function(t) { | |
| return e.post(o, t) | |
| }) | |
| } | |
| , | |
| this.getUserInfo = function() { | |
| var t = r.getUserInfoEndPoint(); | |
| return a.setServiceName("getUserInfo"), | |
| a.setHeader("Accept", u.contentTypes.JSON_V2_0), | |
| a.build().then(function(n) { | |
| return e.get(t, n) | |
| }) | |
| } | |
| , | |
| this.searchDirectory = function(t) { | |
| var n = r.getDirectorySearchEndpoint(t); | |
| return a.setServiceName(s.SEARCH_DIRECTORY), | |
| a.build().then(function(t) { | |
| return e.get(n, t) | |
| }) | |
| } | |
| , | |
| this.searchDirectoryById = function(t) { | |
| var n = r.getDirectorySearchByIdEndpoint(t); | |
| return a.setServiceName(s.SEARCH_DIRECTORY_BY_ID), | |
| a.build().then(function(t) { | |
| return e.get(n, t) | |
| }) | |
| } | |
| , | |
| this.sendContactRequest = function(t, n) { | |
| var o, l = f(s.CONTACT_REQUEST_SENT, t), c = new i(l), p = h(r.getContactRequestEndpoint(), encodeURIComponent(t)); | |
| return a.setServiceName(s.SEND_CONTACT_REQUEST), | |
| a.setOption("payload", "greeting=" + n), | |
| a.setOption("contentType", u.contentTypes.FORM_URL_ENCODED), | |
| o = a.build().then(function(t) { | |
| return e.put(p, t) | |
| }), | |
| o.then(c.success, c.error), | |
| o | |
| } | |
| , | |
| this.getIncomingContactRequests = function() { | |
| var t, n = new i(s.GET_PENDING_CONTACT_REQUESTS), o = r.getContactRequestEndpoint(); | |
| return a.setServiceName(s.GET_PENDING_CONTACT_REQUESTS), | |
| t = a.build().then(function(t) { | |
| return e.get(o, t) | |
| }), | |
| t.then(n.success, n.error), | |
| t | |
| } | |
| , | |
| this.acceptContactRequest = function(t) { | |
| var n, o = f(s.CONTACT_REQUEST_ACCEPTED, t), l = new i(o), c = h(r.getContactRequestEndpoint(), encodeURIComponent(t), "accept"); | |
| return a.setServiceName(s.ACCEPT_CONTACT_REQUEST), | |
| a.setOption("contentType", u.contentTypes.FORM_URL_ENCODED), | |
| n = a.build().then(function(t) { | |
| return e.put(c, t) | |
| }), | |
| n.then(l.success, l.error), | |
| n | |
| } | |
| , | |
| this.declineContactRequest = function(t) { | |
| var n, o = f(s.CONTACT_REQUEST_DECLINED, t), l = new i(o), c = h(r.getContactRequestEndpoint(), encodeURIComponent(t), "decline"); | |
| return a.setServiceName(s.DECLINE_CONTACT_REQUEST), | |
| a.setOption("contentType", u.contentTypes.FORM_URL_ENCODED), | |
| n = a.build().then(function(t) { | |
| return e.put(c, t) | |
| }), | |
| n.then(l.success, l.error), | |
| n | |
| } | |
| , | |
| this.blockContact = function(t, n) { | |
| var l, h = r.getBlockContactEndpoint(t), p = f(s.BLOCK_CONTACT, t), d = new i(p), v = [{ | |
| name: "reporterIp", | |
| value: "127.0.0.1" | |
| }, { | |
| name: "uiVersion", | |
| value: o.getBIVersion() | |
| }]; | |
| return n && v.push({ | |
| name: "reportAbuse", | |
| value: "1" | |
| }), | |
| a.setServiceName(s.BLOCK_CONTACT), | |
| a.setOption("payload", c(v)), | |
| a.setOption("contentType", u.contentTypes.FORM_URL_ENCODED), | |
| l = a.build().then(function(t) { | |
| return e.put(h, t) | |
| }), | |
| l.then(d.success, d.error), | |
| l | |
| } | |
| , | |
| this.unblockContact = function(t) { | |
| var n, o = f(s.UNBLOCK_CONTACT, t), u = new i(o), l = r.getUnblockContactEndpoint(t); | |
| return a.setServiceName(s.UNBLOCK_CONTACT), | |
| n = a.build().then(function(t) { | |
| return e.put(l, t) | |
| }), | |
| n.then(u.success, u.error), | |
| n | |
| } | |
| , | |
| this.deleteContact = function(t) { | |
| var n, o = f(s.DELETE_CONTACT, t), u = new i(o), l = r.getDeleteContactEndpoint(t); | |
| return a.setServiceName(s.DELETE_CONTACT), | |
| n = a.build().then(function(t) { | |
| return e.remove(l, t) | |
| }), | |
| n.then(u.success, u.error), | |
| n | |
| } | |
| } | |
| function f(e, t) { | |
| return e + ":" + t | |
| } | |
| function l(e) { | |
| return { | |
| name: "contacts[]", | |
| value: e | |
| } | |
| } | |
| function c(e) { | |
| return e.reduce(function(e, t) { | |
| return e.concat(t.name + "=" + t.value) | |
| }, []).join("&") | |
| } | |
| function h() { | |
| return Array.prototype.slice.call(arguments).join("/") | |
| } | |
| var t = e("constants/common").featureFlags | |
| , n = e("jSkype/settings") | |
| , r = e("jSkype/services/stratus/serviceSettings") | |
| , i = e("jSkype/services/stratus/dispatcher") | |
| , s = e("jSkype/services/stratus/actions") | |
| , o = e("jSkype/services/clientInfo") | |
| , u = e("jSkype/constants/common"); | |
| return a | |
| }), | |
| define("jSkype/services/stratus/main", ["require", "exports", "module", "jSkype/services/stratus/facade"], function(e, t) { | |
| var n = e("jSkype/services/stratus/facade"), r; | |
| t.getInstance = function(e, t) { | |
| return r || (r = new n(e,t)), | |
| r | |
| } | |
| }), | |
| define("jSkype/services/people/facade", ["require", "exports", "module", "jSkype/settings"], function(e, t) { | |
| function r(e, t) { | |
| function r(e) { | |
| t.setServiceName(e), | |
| t.setHeader("X-AppId", n.settings.peopleService.appId), | |
| t.setHeader("X-SerializeAs", "purejson") | |
| } | |
| this.getSettings = function() { | |
| return r("peopleServiceGetSettings"), | |
| t.build().then(function(t) { | |
| return e.get(n.settings.peopleService.settingsEndpoint, t) | |
| }) | |
| } | |
| , | |
| this.setSettings = function(i) { | |
| var s = { | |
| Settings: [{ | |
| Name: "Skype.AutoBuddy", | |
| Value: !!i | |
| }] | |
| }; | |
| return r("peopleServiceSetSettings"), | |
| t.setOption("payload", JSON.stringify(s)), | |
| t.build().then(function(t) { | |
| return e.post(n.settings.peopleService.settingsEndpoint, t) | |
| }) | |
| } | |
| } | |
| var n = e("jSkype/settings"); | |
| t.build = function(e, t) { | |
| return new r(e,t) | |
| } | |
| }), | |
| define("jSkype/services/people/main", ["require", "exports", "module", "jSkype/services/people/facade"], function(e, t) { | |
| var n = e("jSkype/services/people/facade"), r; | |
| t.getInstance = function(t, i) { | |
| return r || (r = n.build(t, i)), | |
| r | |
| } | |
| }), | |
| define("jSkype/services/ABCHProfile/facade", ["require", "exports", "module", "jSkype/settings"], function(e, t) { | |
| function r(e, t) { | |
| function r(e) { | |
| t.setServiceName(e), | |
| t.setHeader("PS-ApplicationId", n.settings.profileService.appId) | |
| } | |
| this.getProfile = function() { | |
| return r("profileServiceGetProfile"), | |
| t.build().then(function(t) { | |
| return e.get(n.settings.profileService.profileEndpoint, t) | |
| }) | |
| } | |
| , | |
| this.updatePhoneNumber = function(i) { | |
| var s = { | |
| Attributes: [{ | |
| Edit: [{ | |
| Name: i.number, | |
| Searchable: i.isSearchable, | |
| Country: i.cc | |
| }], | |
| Name: "PersonalContactProfile.Phones", | |
| Delete: null , | |
| Add: null | |
| }] | |
| }; | |
| return r("profileServiceUpdatePhoneNumber"), | |
| t.setOption("payload", JSON.stringify(s)), | |
| t.setHeader("Content-Type", "application"), | |
| t.build().then(function(t) { | |
| return e.post(n.settings.profileService.profileEndpoint, t) | |
| }) | |
| } | |
| , | |
| this.deletePhoneNumber = function(i) { | |
| var s = { | |
| Attributes: [{ | |
| Edit: null , | |
| Name: "PersonalContactProfile.Phones", | |
| Delete: [{ | |
| Name: i.number, | |
| Country: i.cc | |
| }], | |
| Add: null | |
| }] | |
| }; | |
| return r("profileServiceDeletePhoneNumber"), | |
| t.setOption("payload", JSON.stringify(s)), | |
| t.setHeader("Content-Type", "application"), | |
| t.build().then(function(t) { | |
| return e.post(n.settings.profileService.profileEndpoint, t) | |
| }) | |
| } | |
| } | |
| var n = e("jSkype/settings"); | |
| t.build = function(e, t) { | |
| return new r(e,t) | |
| } | |
| }), | |
| define("jSkype/services/ABCHProfile/main", ["require", "exports", "module", "jSkype/services/ABCHProfile/facade"], function(e, t) { | |
| var n = e("jSkype/services/ABCHProfile/facade"), r; | |
| t.getInstance = function(t, i) { | |
| return r || (r = n.build(t, i)), | |
| r | |
| } | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/guid", ["require", "exports"], e) | |
| }(function(e, t) { | |
| function n(e) { | |
| var t = e.toString(16), n = 4 - t.length, r; | |
| for (r = 0; r < n; r += 1) | |
| t = "0" + t; | |
| return t | |
| } | |
| function r() { | |
| var e = new Array(8), t, r; | |
| for (r = 0; r < e.length; r += 2) | |
| t = Math.floor(Math.random() * 4294967296), | |
| e[r] = n(t & 65535), | |
| e[r + 1] = n(t >>> 16), | |
| r + 1 === 3 && (e[r + 1] = "4" + e[r + 1].substring(1)); | |
| return e | |
| } | |
| function i() { | |
| var e = r(); | |
| return e[0] + e[1] + "-" + e[2] + "-" + e[3] + "-" + e[4] + "-" + e[5] + e[6] + e[7] | |
| } | |
| function s() { | |
| var e = r(); | |
| return e[0] + e[1] + e[2] + e[3] + e[4] + e[5] + e[6] + e[7] | |
| } | |
| t.create = i, | |
| t.createRaw = s | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("global-portable/lib/global", ["require", "exports"], e) | |
| }(function(e, t) { | |
| var n = "undefined" | |
| , r = typeof window !== n ? window : typeof global !== n ? global : Object.create(null ); | |
| t.__esModule = !0, | |
| t["default"] = r | |
| }), | |
| define("global-portable", ["global-portable/lib/global"], function(e) { | |
| return e | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-browser-globals/lib/globals", ["require", "exports", "global-portable"], e) | |
| }(function(e, t) { | |
| function s() { | |
| return r | |
| } | |
| function o() { | |
| return i | |
| } | |
| var n = e("global-portable") | |
| , r = n["default"].window | |
| , i = n["default"].document; | |
| t.getWindow = s, | |
| t.getDocument = o | |
| }), | |
| define("swx-browser-globals", ["swx-browser-globals/lib/globals"], function(e) { | |
| return e | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/loader", ["require", "exports", "swx-browser-globals"], e) | |
| }(function(e, t) { | |
| function r(e, t) { | |
| e.getElementsByTagName("head")[0].appendChild(t) | |
| } | |
| function i(e) { | |
| var t = n.getDocument() | |
| , i = t.createElement("link"); | |
| return i.href = e, | |
| i.type = "text/css", | |
| i.rel = "stylesheet", | |
| r(t, i), | |
| i | |
| } | |
| function s(e, t, i) { | |
| var s = n.getDocument() | |
| , o = s.createElement("script"); | |
| return o.src = e, | |
| o.type = "text/javascript", | |
| o.async = !0, | |
| t && (o.onload = t), | |
| i && (o.onerror = i), | |
| r(s, o), | |
| o | |
| } | |
| var n = e("swx-browser-globals"); | |
| t.loadStyle = i, | |
| t.loadScript = s | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/sessionStorage", ["require", "exports", "swx-browser-globals"], e) | |
| }(function(e, t) { | |
| function r(e, t) { | |
| var r = n.getWindow(); | |
| try { | |
| r.sessionStorage.setItem(e, t) | |
| } catch (i) {} | |
| } | |
| function i(e) { | |
| var t = n.getWindow(); | |
| try { | |
| return t.sessionStorage.getItem(e) | |
| } catch (r) {} | |
| } | |
| function s(e) { | |
| var t = n.getWindow(); | |
| try { | |
| return t.sessionStorage.removeItem(e) | |
| } catch (r) {} | |
| } | |
| function o() { | |
| var e = n.getWindow(); | |
| try { | |
| e.sessionStorage.clear() | |
| } catch (t) {} | |
| } | |
| var n = e("swx-browser-globals"); | |
| t.set = r, | |
| t.get = i, | |
| t.remove = s, | |
| t.clear = o | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/stopwatch", ["require", "exports"], e) | |
| }(function(e, t) { | |
| function r() { | |
| return new n | |
| } | |
| var n = function() { | |
| function e() { | |
| this.msElapsed = 0, | |
| this.isPaused = !1, | |
| this.startTime = (new Date).getTime() | |
| } | |
| return e.prototype.pause = function() { | |
| this.isPaused || (this.msElapsed += (new Date).getTime() - this.startTime, | |
| this.isPaused = !0) | |
| } | |
| , | |
| e.prototype.resume = function() { | |
| this.isPaused && (this.isPaused = !1, | |
| this.startTime = (new Date).getTime()) | |
| } | |
| , | |
| e.prototype.duration = function() { | |
| return this.isPaused ? this.msElapsed : this.msElapsed + (new Date).getTime() - this.startTime | |
| } | |
| , | |
| e.prototype.durationInMinutes = function() { | |
| var e = this.duration() / 6e4; | |
| return Math.ceil(e) | |
| } | |
| , | |
| e.prototype.durationInSeconds = function() { | |
| var e = this.duration() / 1e3; | |
| return Math.ceil(e) | |
| } | |
| , | |
| e | |
| }(); | |
| t.Stopwatch = n, | |
| t.build = r | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/stringUtils", ["require", "exports", "lodash-compat"], e) | |
| }(function(e, t) { | |
| function o(e, t) { | |
| if (!e) | |
| return !1; | |
| var r = new RegExp("\\b" + n.escapeRegExp(t),"i"); | |
| return a(e).search(r) !== -1 | |
| } | |
| function u(e) { | |
| return e.replace(/[\W]+|[\s]+/gi, " ").trim() | |
| } | |
| function a(e) { | |
| var t = parseInt("0xD800"), r = parseInt("0xDBFF"), i = 0, o = "", u = "", a; | |
| if (!e) | |
| return e; | |
| while (i < e.length) { | |
| o += e.charAt(i), | |
| a = e.charCodeAt(i); | |
| if (a < t || a > r) | |
| u += n.has(s, o) ? s[o] : o, | |
| o = ""; | |
| i++ | |
| } | |
| return u | |
| } | |
| function f(e, t, n, r) { | |
| return typeof r == "undefined" && (r = n), | |
| e.substr(0, n) + t + e.substr(r, e.length) | |
| } | |
| function l(e) { | |
| return e === "" | |
| } | |
| function c(e) { | |
| return n.isString(e) && e.length > 0 | |
| } | |
| function h(e) { | |
| return e === "\r" | |
| } | |
| function p(e) { | |
| return e === "\n" | |
| } | |
| function d(e) { | |
| return e === " " | |
| } | |
| function v(e, t) { | |
| var n = this.wordBoundariesAt(e, t); | |
| return n.start === -1 ? "" : e.substring(n.start, n.end) | |
| } | |
| function m(e, t) { | |
| if (t > e.length) | |
| return { | |
| start: -1, | |
| end: -1 | |
| }; | |
| if (t === e.length) { | |
| if (e.search(/\s$/) !== -1) | |
| return { | |
| start: -1, | |
| end: -1 | |
| }; | |
| t-- | |
| } | |
| var n = e.substring(0, t).search(/\S+$/) | |
| , r = e.substring(t).search(/\s/); | |
| return n === -1 && (n = t), | |
| r === -1 ? r = e.length : r += t, | |
| { | |
| start: n, | |
| end: r | |
| } | |
| } | |
| function g(e) { | |
| return r + e + i | |
| } | |
| var n = e("lodash-compat") | |
| , r = "โช" | |
| , i = "โฌ" | |
| , s = { | |
| "ยช": "a", | |
| "ยบ": "o", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร": "A", | |
| "ร ": "A", | |
| "ร": "C", | |
| "ร": "E", | |
| "ร": "E", | |
| "ร": "E", | |
| "ร": "E", | |
| "ร": "I", | |
| "ร": "I", | |
| "ร": "I", | |
| "ร": "I", | |
| "ร": "N", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "O", | |
| "ร": "U", | |
| "ร": "U", | |
| "ร": "U", | |
| "ร": "U", | |
| "ร": "Y", | |
| "ร ": "a", | |
| "รก": "a", | |
| "รข": "a", | |
| "รฃ": "a", | |
| "รค": "a", | |
| "รฅ": "a", | |
| "รง": "c", | |
| "รจ": "e", | |
| "รฉ": "e", | |
| "รช": "e", | |
| "รซ": "e", | |
| "รฌ": "i", | |
| "รญ": "i", | |
| "รฎ": "i", | |
| "รฏ": "i", | |
| "รฑ": "n", | |
| "รฒ": "o", | |
| "รณ": "o", | |
| "รด": "o", | |
| "รต": "o", | |
| "รถ": "o", | |
| "รน": "u", | |
| "รบ": "u", | |
| "รป": "u", | |
| "รผ": "u", | |
| "รฝ": "y", | |
| "รฟ": "y", | |
| "ฤ": "A", | |
| "ฤ": "a", | |
| "ฤ": "A", | |
| "ฤ": "a", | |
| "ฤ": "A", | |
| "ฤ ": "a", | |
| "ฤ": "C", | |
| "ฤ": "c", | |
| "ฤ": "C", | |
| "ฤ": "c", | |
| "ฤ": "C", | |
| "ฤ": "c", | |
| "ฤ": "C", | |
| "ฤ": "c", | |
| "ฤ": "D", | |
| "ฤ": "d", | |
| "ฤ": "E", | |
| "ฤ": "e", | |
| "ฤ": "E", | |
| "ฤ": "e", | |
| "ฤ": "E", | |
| "ฤ": "e", | |
| "ฤ": "E", | |
| "ฤ": "e", | |
| "ฤ": "E", | |
| "ฤ": "e", | |
| "ฤ": "G", | |
| "ฤ": "g", | |
| "ฤ": "G", | |
| "ฤ": "g", | |
| "ฤ ": "G", | |
| "ฤก": "g", | |
| "ฤข": "G", | |
| "ฤฃ": "g", | |
| "ฤค": "H", | |
| "ฤฅ": "h", | |
| "ฤจ": "I", | |
| "ฤฉ": "i", | |
| "ฤช": "I", | |
| "ฤซ": "i", | |
| "ฤฌ": "I", | |
| "ฤญ": "i", | |
| "ฤฎ": "I", | |
| "ฤฏ": "i", | |
| "ฤฐ": "I", | |
| "ฤฒ": "IJ", | |
| "ฤณ": "ij", | |
| "ฤด": "J", | |
| "ฤต": "j", | |
| "ฤถ": "K", | |
| "ฤท": "k", | |
| "ฤน": "L", | |
| "ฤบ": "l", | |
| "ฤป": "L", | |
| "ฤผ": "l", | |
| "ฤฝ": "L", | |
| "ฤพ": "l", | |
| "ฤฟ": "Lยท", | |
| "ล": "lยท", | |
| "ล": "N", | |
| "ล": "n", | |
| "ล ": "N", | |
| "ล": "n", | |
| "ล": "N", | |
| "ล": "n", | |
| "ล": "สผn", | |
| "ล": "O", | |
| "ล": "o", | |
| "ล": "O", | |
| "ล": "o", | |
| "ล": "O", | |
| "ล": "o", | |
| "ล": "R", | |
| "ล": "r", | |
| "ล": "R", | |
| "ล": "r", | |
| "ล": "R", | |
| "ล": "r", | |
| "ล": "S", | |
| "ล": "s", | |
| "ล": "S", | |
| "ล": "s", | |
| "ล": "S", | |
| "ล": "s", | |
| "ล ": "S", | |
| "ลก": "s", | |
| "ลข": "T", | |
| "ลฃ": "t", | |
| "ลค": "T", | |
| "ลฅ": "t", | |
| "ลจ": "U", | |
| "ลฉ": "u", | |
| "ลช": "U", | |
| "ลซ": "u", | |
| "ลฌ": "U", | |
| "ลญ": "u", | |
| "ลฎ": "U", | |
| "ลฏ": "u", | |
| "ลฐ": "U", | |
| "ลฑ": "u", | |
| "ลฒ": "U", | |
| "ลณ": "u", | |
| "ลด": "W", | |
| "ลต": "w", | |
| "ลถ": "Y", | |
| "ลท": "y", | |
| "ลธ": "Y", | |
| "ลน": "Z", | |
| "ลบ": "z", | |
| "ลป": "Z", | |
| "ลผ": "z", | |
| "ลฝ": "Z", | |
| "ลพ": "z", | |
| "ลฟ": "s", | |
| "ฦ ": "O", | |
| "ฦก": "o", | |
| "ฦฏ": "U", | |
| "ฦฐ": "u", | |
| "ว": "DZ", | |
| "ว ": "Dz", | |
| "ว": "dz", | |
| "ว": "LJ", | |
| "ว": "Lj", | |
| "ว": "lj", | |
| "ว": "NJ", | |
| "ว": "Nj", | |
| "ว": "nj", | |
| "ว": "A", | |
| "ว": "a", | |
| "ว": "I", | |
| "ว": "i", | |
| "ว": "O", | |
| "ว": "o", | |
| "ว": "U", | |
| "ว": "u", | |
| "ว": "U", | |
| "ว": "u", | |
| "ว": "U", | |
| "ว": "u", | |
| "ว": "U", | |
| "ว": "u", | |
| "ว": "U", | |
| "ว": "u", | |
| "ว": "A", | |
| "ว": "a", | |
| "ว ": "A", | |
| "วก": "a", | |
| "วฆ": "G", | |
| "วง": "g", | |
| "วจ": "K", | |
| "วฉ": "k", | |
| "วช": "O", | |
| "วซ": "o", | |
| "วฌ": "O", | |
| "วญ": "o", | |
| "วฐ": "j", | |
| "วฑ": "DZ", | |
| "วฒ": "Dz", | |
| "วณ": "dz", | |
| "วด": "G", | |
| "วต": "g", | |
| "วธ": "N", | |
| "วน": "n", | |
| "วบ": "A", | |
| "วป": "a", | |
| "ศ": "A", | |
| "ศ": "a", | |
| "ศ": "A", | |
| "ศ": "a", | |
| "ศ": "E", | |
| "ศ ": "e", | |
| "ศ": "E", | |
| "ศ": "e", | |
| "ศ": "I", | |
| "ศ": "i", | |
| "ศ": "I", | |
| "ศ": "i", | |
| "ศ": "O", | |
| "ศ": "o", | |
| "ศ": "O", | |
| "ศ": "o", | |
| "ศ": "R", | |
| "ศ": "r", | |
| "ศ": "R", | |
| "ศ": "r", | |
| "ศ": "U", | |
| "ศ": "u", | |
| "ศ": "U", | |
| "ศ": "u", | |
| "ศ": "S", | |
| "ศ": "s", | |
| "ศ": "T", | |
| "ศ": "t", | |
| "ศ": "H", | |
| "ศ": "h", | |
| "ศฆ": "A", | |
| "ศง": "a", | |
| "ศจ": "E", | |
| "ศฉ": "e", | |
| "ศช": "O", | |
| "ศซ": "o", | |
| "ศฌ": "O", | |
| "ศญ": "o", | |
| "ศฎ": "O", | |
| "ศฏ": "o", | |
| "ศฐ": "O", | |
| "ศฑ": "o", | |
| "ศฒ": "Y", | |
| "ศณ": "y", | |
| "สฐ": "h", | |
| "สฒ": "j", | |
| "สณ": "r", | |
| "สท": "w", | |
| "สธ": "y", | |
| "หก": "l", | |
| "หข": "s", | |
| "หฃ": "x" | |
| }; | |
| t.anyWordStartsWith = o, | |
| t.clean = u, | |
| t.normalize = a, | |
| t.inject = f, | |
| t.isEmpty = l, | |
| t.isNotEmpty = c, | |
| t.isCarriageReturn = h, | |
| t.isNewLine = p, | |
| t.isWhiteSpace = d, | |
| t.wordAt = v, | |
| t.wordBoundariesAt = m, | |
| t.forceLTREmbedding = g | |
| }), | |
| function(e) { | |
| if (typeof module == "object" && typeof module.exports == "object") { | |
| var t = e(require, exports); | |
| t !== undefined && (module.exports = t) | |
| } else | |
| typeof define == "function" && define.amd && define("swx-utils-common/lib/index", ["require", "exports", "./guid", "./loader", "./sessionStorage", "./stopwatch", "./stringUtils"], e) | |
| }(function(e, t) { | |
| var n = e("./guid"); | |
| t.guid = n; | |
| var r = e("./loader"); | |
| t.loader = r; | |
| var i = e("./sessionStorage"); | |
| t.sessionStorage = i; | |
| var s = e("./stopwatch"); | |
| t.stopwatch = s; | |
| var o = e("./stringUtils"); | |
| t.stringUtils = o | |
| }), | |
| define("swx-utils-common", ["swx-utils-common/lib/index"], function(e) { | |
| return e | |
| }), | |
| define("jSkype/services/webapi/builders/requestURIBuilder", ["require", "exports", "module", "swx-utils-common", "jSkype/modelHelpers/personHelper", "jSkype/modelHelpers/personsAndGroupsHelper"], function(e, t) { | |
| function v(e) { | |
| return u + e | |
| } | |
| function m(e, t) { | |
| return t.replace(o, "") + (e || "") | |
| } | |
| function g() { | |
| return "/" + n.get("endpointId") | |
| } | |
| function y(e) { | |
| var t = i.getPersonById(e); | |
| return r.getKey(e, t ? t._type() : null ) | |
| } | |
| var n = e("swx-utils-common").sessionStorage | |
| , r = e("jSkype/modelHelpers/personHelper") | |
| , i = e("jSkype/modelHelpers/personsAndGroupsHelper") | |
| , s = "v1" | |
| , o = /http(s)?:\/\/+[\w\-.]*/ | |
| , u = s + "/users/ME" | |
| , a = "/ng/ping" | |
| , f = "/messages" | |
| , l = "/conversations" | |
| , c = "/threads" | |
| , h = "/members" | |
| , p = "/contacts" | |
| , d = "/endpoints"; | |
| t.ping = function() { | |
| return s + a | |
| } | |
| , | |
| t.conversations = function(e) { | |
| var t = l; | |
| return e && (t += "/" + e), | |
| v(t) | |
| } | |
| , | |
| t.messageProperties = function(e, t) { | |
| var n = "/" + e + f | |
| , r = "/" + t + "/properties" | |
| , i = l + n + r; | |
| return v(i) | |
| } | |
| , | |
| t.messages = function(e) { | |
| var t = "/" + e + f | |
| , n = l + t; | |
| return v(n) | |
| } | |
| , | |
| t.thread = function(e) { | |
| return s + c + "/" + e | |
| } | |
| , | |
| t.member = function(e, t) { | |
| return this.thread(e) + h + "/" + y(t) | |
| } | |
| , | |
| t.contacts = function(e, t) { | |
| var n = e ? "/" + y(e) : ""; | |
| return t = t || "", | |
| v(p + n + t) | |
| } | |
| , | |
| t.customResource = function(e, t) { | |
| var n; | |
| return t ? n = m(e, t) : n = v(e), | |
| n | |
| } | |
| , | |
| t.constructPresenceEndpointURI = function(e) { | |
| return u + d + g() + e | |
| } | |
| }), | |
| define("jSkype/services/webapi/builders/headerSelector", ["require", "exports", "module", "lodash-compat", "swx-utils-common", "jSkype/constants/data", "jSkype/client", "jSkype/services/clientInfo", "jcafe-property-model", "jSkype/services/webapi/constants"], function(e, t) { | |
| function p() { | |
| var e = r.get(l) || 0 | |
| , s = e < n.now() | |
| , o = r.get(i.SKYPE_ID_REG_TOKEN) !== d() | |
| , u = r.get(f) !== null ; | |
| if (s || o) | |
| t.clearRegistrationToken(), | |
| u = !1; | |
| o && v(), | |
| c(u) | |
| } | |
| function d() { | |
| return s.get().personsAndGroupsManager.mePerson.id() | |
| } | |
| function v() { | |
| r.remove(i.ENDPOINT_ID), | |
| r.remove(i.PRESENCE_DATA) | |
| } | |
| function m() { | |
| return { | |
| ClientInfo: o.getClientInfo(), | |
| "Cache-Control": "no-cache, no-store, must-revalidate", | |
| Pragma: "no-cache", | |
| Expires: "0", | |
| ContextId: "tcid=" + (new Date).getTime() + (Math.floor(Math.random() * 9e4) + 1e4), | |
| BehaviorOverride: "redirectAs404" | |
| } | |
| } | |
| var n = e("lodash-compat"), r = e("swx-utils-common").sessionStorage, i = e("jSkype/constants/data").storageKeys, s = e("jSkype/client"), o = e("jSkype/services/clientInfo"), u = e("jcafe-property-model"), a = e("jSkype/services/webapi/constants"), f = "registrationToken", l = f + "Expiration", c = u.boolProperty(!1), h; | |
| t.setLockAndKey = function(e) { | |
| h = e | |
| } | |
| , | |
| t.setRegistrationToken = function(e) { | |
| var t = /registrationToken=(.+); expires=(\d+)/ | |
| , n = t.test(e) && e.match(t) | |
| , s = n && (new Date(n[2] * 1e3)).getTime(); | |
| s && s > 0 && (r.set(f, f + "=" + n[1]), | |
| r.set(l, s), | |
| r.set(i.SKYPE_ID_REG_TOKEN, d()), | |
| c(!0)) | |
| } | |
| , | |
| t.clearRegistrationToken = function() { | |
| r.remove(f), | |
| r.remove(l), | |
| c(!1) | |
| } | |
| , | |
| t.fetch = function(e) { | |
| function i() { | |
| e === a.SERVICE_CALLS.REQUEST_ENDPOINT_CREATION ? s.get().signInManager._skypeToken().then(l, n.reject.bind(n)) : c.once(!0, o) | |
| } | |
| function o() { | |
| t.RegistrationToken = r.get(f), | |
| n.resolve(t) | |
| } | |
| function l(e) { | |
| t.LockAndKey = h, | |
| t.Authentication = "skypetoken=" + e, | |
| n.resolve(t) | |
| } | |
| var t = m() | |
| , n = u.task(); | |
| return p(), | |
| c() ? o() : h ? i() : n.reject(new Error("no valid authorization token present")), | |
| n.promise | |
| } | |
| }), | |
| define("jSkype/services/webapi/utils/exponentialTimeout", ["require", "exports", "module", "jSkype/settings", "constants/common"], function(e, t) { | |
| function u() { | |
| o && clearTimeout(o) | |
| } | |
| var n = e("jSkype/settings"), r = e("constants/common"), i = null , s = 1, o; | |
| t.execute = function(e) { | |
| var t = 1e3 | |
| , a = 12e4 | |
| , f = 0; | |
| n.isFeatureOn(r.featureFlags.ENABLE_ENDPOINT_ECS_CONFIG) && (t = n.settings.webApiService.endpointRetry.base * 1e3, | |
| a = n.settings.webApiService.endpointRetry.limit * 1e3, | |
| f = n.settings.webApiService.endpointRetry.noiseFactor), | |
| u(), | |
| i === null && (i = t), | |
| o = setTimeout(e, i + Math.random() * f * i), | |
| i < a && (s++, | |
| i *= s) | |
| } | |
| , | |
| t.reset = function() { | |
| u(), | |
| i = null , | |
| s = 1 | |
| } | |
| }), | |
| define("jSkype/services/webapi/boundary/facade", ["require", "lodash-compat", "usertiming", "constants/common", "jSkype/client", "jSkype/constants/data", "jcafe-property-model", "jSkype/services/internalPubSub", "jSkype/services/webapi/builders/requestURIBuilder", "jSkype/services/webapi/builders/headerSelector", "jSkype/services/webapi/constants", "jSkype/services/webapi/utils/exponentialTimeout", "jSkype/settings", "jSkype/services/serviceAccessLayer/serviceQosReporterFacade", "swx-utils-common", "utils/common/cache/instance"], function(e) { | |
| function S(e, t) { | |
| var n = e.getAllResponseHeaders().toLowerCase(); | |
| return n.indexOf(t) === -1 ? null : e.getResponseHeader(t) | |
| } | |
| function x(e) { | |
| e = e || ""; | |
| var t = e.match(/^(https?:.+?\.live\.com)/i); | |
| return t ? t[1] : null | |
| } | |
| function T(e, t) { | |
| var n = new RegExp("errorCode[\"']?:[\"']?" + t,"i"); | |
| return n.test(e) | |
| } | |
| var t = e("lodash-compat") | |
| , n = e("usertiming") | |
| , r = e("constants/common") | |
| , i = e("jSkype/client") | |
| , s = e("jSkype/constants/data").storageKeys | |
| , o = e("jcafe-property-model") | |
| , u = e("jSkype/services/internalPubSub") | |
| , a = e("jSkype/services/webapi/builders/requestURIBuilder") | |
| , f = e("jSkype/services/webapi/builders/headerSelector") | |
| , l = e("jSkype/services/webapi/constants") | |
| , c = e("jSkype/services/webapi/utils/exponentialTimeout") | |
| , h = e("jSkype/settings") | |
| , p = e("jSkype/services/serviceAccessLayer/serviceQosReporterFacade") | |
| , d = e("swx-utils-common").sessionStorage | |
| , v = e("utils/common/cache/instance") | |
| , m = r.msnpErrors | |
| , g = r.httpStatusCodes | |
| , y = r.events.system | |
| , b = r.onlineStates | |
| , w = r.telemetry.performanceMarks | |
| , E = ["/v1/users/ME/conversations/ALL/properties", "/v1/users/ME/conversations/ALL/messages", "/v1/users/ME/contacts/ALL", "/v1/threads/ALL"]; | |
| return function(N, C, k) { | |
| function D(e) { | |
| return function() { | |
| d.get(s.ENDPOINT_ID) !== null && e.apply(L, arguments) | |
| } | |
| } | |
| function j(e) { | |
| var t, n = new RegExp(s.ENDPOINT_ID + "=({.+})"), r = e && e.match(n); | |
| r && (t = r[1], | |
| d.set(s.ENDPOINT_ID, t), | |
| v.get().setItem(s.ENDPOINT_ID, t), | |
| P(!0)) | |
| } | |
| function F() { | |
| A.promise.state() === "pending" && A.resolve() | |
| } | |
| function I(e, t) { | |
| var n = "chat-4171", r; | |
| t ? d.set(n, e) : (r = d.get(n), | |
| d.set(n, r + ">" + e)) | |
| } | |
| function q(e, t, r) { | |
| var i = e.status === g.notFound && T(e.response, m.redirectionOverride), s; | |
| return i ? (s = x(S(e, "location")), | |
| s ? (r && n.mark(r), | |
| k.updateServiceDomain(s), | |
| t(), | |
| !0) : !1) : !1 | |
| } | |
| function R(e) { | |
| if (!h.isFeatureOn(r.featureFlags.PINNING_TO_DOGFOOD_CLOUD)) | |
| return !1; | |
| var t = /https:\/\/.*?-?df-/i | |
| , n = t.test(x(e.responseURL)) | |
| , i = x(S(e, "location")) | |
| , s = t.test(i) | |
| , o = e.status === g.notFound && n && !s; | |
| return o && (k.updateServiceDomain(i), | |
| L.pinUserToDogfoodCloud()), | |
| o | |
| } | |
| function U(e) { | |
| function n(n) { | |
| var r = d.get("chat-4171") | |
| , s = r.match(/(\d+)x>P$/) | |
| , o = new Date - H; | |
| s ? (r = r.replace(/\d+x>P$/, ""), | |
| I(r + (+s[1] + 1) + "x", !0)) : I("POK1x"), | |
| t.success(n); | |
| if (i.get()._standbyMode() && (B || o > L._internal.POLLING_DURATION)) { | |
| var u = h.settings.webApiService.standbyPollingDelayTime.min || 30 | |
| , a = h.settings.webApiService.standbyPollingDelayTime.max || 60 | |
| , f = W(u, a) | |
| , l = new Promise(function(e) { | |
| setTimeout(e, f * 1e3) | |
| } | |
| ); | |
| Promise.race([M, l]).then(U.bind(null , e)), | |
| B = !0 | |
| } else | |
| U(e) | |
| } | |
| function r(e) { | |
| t.error(e); | |
| if (q(e, L.poll)) { | |
| I("PERR404"); | |
| return | |
| } | |
| e.status === 0 ? (I("PERR0"), | |
| L.ping()) : (I("PERR"), | |
| L.poll()) | |
| } | |
| var t = N("polling"); | |
| A.promise.then(function() { | |
| I("P"), | |
| H = new Date, | |
| k.requestPolling(e).then(n, r) | |
| }) | |
| } | |
| function z() { | |
| k.setEndpointProperty(l.ENDPOINT_PROPERTIES.SUPPORTS_MESSAGE_PROPERTIES, !0) | |
| } | |
| function W(e, t) { | |
| return Math.floor(Math.random() * Math.abs(t - e) + e) | |
| } | |
| var L = this, A = o.task(), O = !1, M = new Promise(function(e) { | |
| i.get()._standbyMode.once(!1, e) | |
| } | |
| ), P = o.property({ | |
| value: !!d.get(s.ENDPOINT_ID) | |
| }), H, B; | |
| this._internal = { | |
| ANNOTATIONS_RETRY_COUNT: 50, | |
| ANNOTATIONS_RETRY_TIMEOUT: 200, | |
| POLLING_DURATION: 5e3 | |
| }, | |
| this.setMessageProperty = function(e, t, n, r, i, s) { | |
| function o(o) { | |
| q(o, L.setMessageProperty.bind(L, e, t, n, r, i, s)) || s(o) | |
| } | |
| function a() { | |
| u++, | |
| u < L._internal.ANNOTATIONS_RETRY_COUNT && (t._actualId ? k.setMessageProperty(e, t._actualId, n, r).then(i, o) : setTimeout(a, L._internal.ANNOTATIONS_RETRY_TIMEOUT)) | |
| } | |
| var u = 0; | |
| a() | |
| } | |
| , | |
| this.removeMessageProperty = function(e, t, n, r, i, s) { | |
| function o(o) { | |
| q(o, L.removeMessageProperty.bind(L, e, t, n, r, i, s)) || s(o) | |
| } | |
| function a() { | |
| u++, | |
| u < L._internal.ANNOTATIONS_RETRY_COUNT && (t._actualId ? k.removeMessageProperty(e, t._actualId, n, r).then(i, o) : setTimeout(a, L._internal.ANNOTATIONS_RETRY_TIMEOUT)) | |
| } | |
| var u = 0; | |
| a() | |
| } | |
| , | |
| this.removeAllMessages = function(e, t, n) { | |
| function s(e) { | |
| r.statusCode = e.response.status, | |
| t && t() | |
| } | |
| function o(i) { | |
| q(i, L.removeAllMessages.bind(L, e, t, n)) || n(i), | |
| r.statusCode = i.status | |
| } | |
| var r = i.get()._telemetry.context; | |
| k.removeAllMessages(e).then(s, o) | |
| } | |
| , | |
| this.setConversationOption = function(e, t, n, r, i) { | |
| function s(s) { | |
| q(s, L.setConversationOption.bind(L, e, t, n, r, i)) || i(s) | |
| } | |
| k.setConversationOption(e, t, n).then(r, s) | |
| } | |
| , | |
| this.setThreadOption = function(e, t, n, r, i) { | |
| function s(s) { | |
| q(s, L.setThreadOption.bind(L, e, t, n, r, i)) || i(s) | |
| } | |
| k.setThreadOption(e, t, n).then(r, s) | |
| } | |
| , | |
| this.pinUserToDogfoodCloud = function() { | |
| function t(t) { | |
| e.success(t), | |
| L.poll() | |
| } | |
| function n(t) { | |
| e.error(t), | |
| q(t, L.pinUserToDogfoodCloud) | |
| } | |
| var e = N("pinToDogfood"); | |
| k.pinToDogfood().then(t, n) | |
| } | |
| , | |
| this.ping = function() { | |
| var e = u.get(); | |
| e.publish(y.ONLINE_STATE_CHANGED, b.OFFLINE), | |
| I("O"); | |
| var t = N("ping"); | |
| k.ping().then(function(r) { | |
| I("OOK"), | |
| e.publish(y.ONLINE_STATE_CHANGED, b.ONLINE), | |
| t.success(r), | |
| L.poll(), | |
| p.getInstance().reportSuccess("webapi-ping") | |
| }, function(n) { | |
| var i = d.get("chat-4171") | |
| , s = i.match(/(\d+)x>O$/) | |
| , o = 1e3; | |
| if (h.isFeatureOn(r.featureFlags.ENABLE_PING_ECS_CONFIG)) { | |
| var u = h.settings.webApiService.pingDelayTime.min || 30 | |
| , a = h.settings.webApiService.pingDelayTime.max || 60; | |
| o = W(u * 1e3, a * 1e3) | |
| } | |
| s ? (i = i.replace(/\d+x>O$/, ""), | |
| I(i + (+s[1] + 1) + "x", !0)) : I("OERR1x"), | |
| t.error(n), | |
| setTimeout(L.ping, o) | |
| }) | |
| } | |
| , | |
| this.createConversation = function(e, t, r) { | |
| function s(e) { | |
| n.mark(w.NEW_CONVERSATION.CREATION_END_OK), | |
| i.success(e); | |
| var r = S(e.request, "location") | |
| , s = r.match(/threads\/(19:.*)$/)[1]; | |
| t(s) | |
| } | |
| function o(s) { | |
| n.mark(w.NEW_CONVERSATION.CREATION_END_ERROR), | |
| i.error(s), | |
| q(s, L.createConversation.bind(L, e, t, r)), | |
| r(s) | |
| } | |
| n.mark(w.NEW_CONVERSATION.CREATION_START); | |
| var i = N("createConversation"); | |
| k.createConversation(e).then(s, o) | |
| } | |
| , | |
| this.getUserPresence = function(e) { | |
| function n(n) { | |
| t.error(n), | |
| q(n, L.getUserPresence.bind(L, e)) | |
| } | |
| var t = N("getUserPresence"); | |
| k.getUserPresence(e).then(t.success, n) | |
| } | |
| , | |
| this.setEndpointPresence = function() { | |
| function t(t) { | |
| e.error(t), | |
| q(t, L.setEndpointPresence) | |
| } | |
| var e = N("setEndpointPresence"); | |
| k.setEndpointPresence().then(e.success, t) | |
| } | |
| , | |
| this.activateEndpoint = function() { | |
| function e() { | |
| var e = N("activateEndpoint"); | |
| k.activateEndpoint().then(e.success, e.error) | |
| } | |
| P.when(!0, e) | |
| } | |
| , | |
| this._getEndpointId = function() { | |
| return new Promise(function(e) { | |
| var t = d.get(s.ENDPOINT_ID); | |
| v.get().getItem(s.ENDPOINT_ID).then(function(n) { | |
| n === t ? e(t) : e() | |
| }) | |
| } | |
| ) | |
| } | |
| , | |
| this.poll = function() { | |
| function o(e) { | |
| n.error(e); | |
| if (q(e, L.poll)) { | |
| I("SERR404"); | |
| return | |
| } | |
| I("SERR"); | |
| if (e.status === g.notFound && T(e.response, m.missingEndpoint)) | |
| return; | |
| c.execute(L.poll) | |
| } | |
| function l(e) { | |
| I("SOK"), | |
| n.success(e), | |
| L.setEndpointPresence(), | |
| U(S(e.request, "location")) | |
| } | |
| function p(t) { | |
| e.error(t), | |
| v(t); | |
| if (R(t)) { | |
| I("EERRdf"); | |
| return | |
| } | |
| if (q(t, L.poll)) { | |
| I("EERR404"); | |
| return | |
| } | |
| if (t.status === g.forbidden) { | |
| f.clearRegistrationToken(), | |
| I("EERR403(" + t.getResponseHeader("contextId") + ';"' + t.responseText + '")' + !!d.get("registrationTokenRealTime")), | |
| L.poll(); | |
| return | |
| } | |
| I("EERR"), | |
| c.execute(L.poll) | |
| } | |
| function v(e) { | |
| var t = S(e, "set-registrationtoken"); | |
| t && (f.setRegistrationToken(t), | |
| j(t)) | |
| } | |
| function b(t) { | |
| var n = t.response, f = t.request, p = r.telemetry.timelineLoadOrigin, m = i.get()._telemetry.context, g = u.get(), b; | |
| v(f), | |
| I("EOK"), | |
| c.reset(), | |
| e.success(t), | |
| b = d.get(s.RESURECTION_KEY), | |
| b ? (d.remove(s.RESURECTION_KEY), | |
| m.timelineLoadOrigin = p.RESSURECT) : P() ? m.timelineLoadOrigin = p.RELOAD : m.timelineLoadOrigin = p.LOAD; | |
| if (!h.settings.isPollingEnabled) | |
| return; | |
| h.isFeatureOn(r.featureFlags.SUPPORT_MESSAGE_PROPERTIES) && z(); | |
| if (n.subscriptions && n.subscriptions.length > 0) { | |
| var S = a.customResource("/endpoints/SELF/subscriptions/") + n.subscriptions[0].id; | |
| w().finally(function() { | |
| U(S) | |
| }) | |
| } else | |
| O && g.publish(y.FORCE_RESYNC), | |
| w().finally(function() { | |
| I("S"), | |
| k.requestSubscriptionCreation(E).then(l, o) | |
| }); | |
| O = !0 | |
| } | |
| function w() { | |
| var e = k.getSelfProperties(); | |
| return e.then(t.success.bind(t), t.error.bind(t)), | |
| e | |
| } | |
| function x() { | |
| var e = "Agent"; | |
| return h.isFeatureOn(r.featureFlags.READ_RECEIPT_ENABLED) && (e += ",readReceipts"), | |
| { | |
| endpointFeatures: e | |
| } | |
| } | |
| var e = N("endpointCreation") | |
| , t = N("getSelfProperties") | |
| , n = N("subscriptionCreation"); | |
| I("E" + !!d.get(s.ENDPOINT_ID)), | |
| L._getEndpointId().then(function(e) { | |
| k.requestEndpointCreation(e, x()).then(b, p) | |
| }) | |
| } | |
| , | |
| this.reset = function() { | |
| function e() { | |
| O = !1 | |
| } | |
| return k.abortCurrentPoll(), | |
| k.requestEndpointRemoval(d.get(s.ENDPOINT_ID)).then(e, e) | |
| } | |
| , | |
| this.postMessage = function(e, t, r, s) { | |
| function a(e) { | |
| n.mark(w.IM_SEND.POST_END_OK + o), | |
| u.enqueueSentMessageInfo(t), | |
| r(e) | |
| } | |
| function f(i) { | |
| if (q(i, L.postMessage.bind(L, e, t, r, s))) | |
| return; | |
| n.mark(w.IM_SEND.POST_END_ERROR + o), | |
| u.enqueueSentMessageInfo(t), | |
| s(i) | |
| } | |
| var o = t.clientmessageid | |
| , u = i.get()._telemetry.messagesCollector; | |
| n.mark(w.IM_SEND.POST_START + o), | |
| k.postMessage(e, t).then(a, f) | |
| } | |
| , | |
| this.sendContactsList = function(e) { | |
| k.sendContactsList(e).then(t.noop, function(n) { | |
| q(n, L.sendContactsList.bind(L, e)) | |
| }) | |
| } | |
| , | |
| this.addContactToContactsList = D(function(e) { | |
| k.addContactToContactsList(e).then(t.noop, function(n) { | |
| q(n, L.addContactToContactsList.bind(L, e)) | |
| }) | |
| }), | |
| this.removeContactFromContactsList = D(function(e) { | |
| k.removeContactFromContactsList(e).then(t.noop, function(n) { | |
| q(n, L.removeContactFromContactsList.bind(L, e)) | |
| }) | |
| }), | |
| this.addParticipant = function(e, t, n, r, i) { | |
| k.addParticipant(e, t, n).then(r, function(o) { | |
| q(o, L.addParticipant.bind(L, e, t, n, r, i)) || typeof i == "function" && i(o) | |
| }) | |
| } | |
| , | |
| this.removeParticipant = function(e, t, n, r) { | |
| k.removeParticipant(e, t).then(n, function(s) { | |
| q(s, L.removeParticipant.bind(L, e, t, n, r)) || r(s) | |
| }) | |
| } | |
| , | |
| this.setConsumptionHorizon = function(e, t, n) { | |
| function i(e) { | |
| n && n(e), | |
| r.success(e) | |
| } | |
| function s(n) { | |
| r.error(n), | |
| q(n, L.setConsumptionHorizon.bind(L, e, t)) | |
| } | |
| var r = N("setConsumptionHorizon"); | |
| k.setConsumptionHorizon(e, t).then(i, s) | |
| } | |
| , | |
| this.setUserPresence = function(e) { | |
| function n(n) { | |
| t.error(n), | |
| q(n, L.setUserPresence.bind(L, e)) | |
| } | |
| var t = N("setUserPresence"); | |
| k.setUserPresence(e).then(t.success, n) | |
| } | |
| , | |
| this.syncMessages = function(e, t, n, r, s) { | |
| function a(t) { | |
| var n = C.buildMessageSuccess(e, r); | |
| F(), | |
| n(t) | |
| } | |
| function f(i) { | |
| u.chatHistoryLoadResult[e] = i.status; | |
| var a = q(i, L.syncMessages.bind(L, e, t, n, r, s)); | |
| a ? u.isChatHistoryLoad404 = !0 : (o.error(i), | |
| s && s()) | |
| } | |
| var o = N("syncMessages") | |
| , u = i.get()._telemetry.context; | |
| u.chatHistoryLoadResult[e] = g.OK, | |
| k.fetchMessages(e, t, n).then(a, f) | |
| } | |
| , | |
| this.syncMessagesLoadMore = function(e, t, n, r) { | |
| function s(t) { | |
| var r = C.buildMessageSuccess(e, n); | |
| r(t) | |
| } | |
| function o(s) { | |
| var o = q(s, L.syncMessagesLoadMore.bind(L, e, t, n, r)); | |
| o || (i.error(s), | |
| r(s)) | |
| } | |
| var i = N("syncMessagesLoadMore"); | |
| k.fetchMessagesLoadMore(e, t).then(s, o) | |
| } | |
| , | |
| this.syncRecents = function(e, t, n, r) { | |
| function i(e) { | |
| n(e), | |
| F() | |
| } | |
| function s(i) { | |
| var s = q(i, L.syncRecents.bind(L, e, t, n, r)); | |
| s || r(i) | |
| } | |
| k.fetchConversations(e, t).then(i, s) | |
| } | |
| , | |
| this.syncRecentsBySyncState = function(e, t, n, i) { | |
| function s(e) { | |
| n(e), | |
| h.isFeatureOn(r.featureFlags.DISABLE_POLLING_ON_KAHUNA) || F() | |
| } | |
| function o(r) { | |
| var s = q(r, L.syncRecentsBySyncState.bind(L, e, t, n, i)); | |
| s || i(r) | |
| } | |
| k.fetchConversationsBySyncState(e, t).then(s, o) | |
| } | |
| , | |
| this.syncConversation = function(e, t, n) { | |
| function r(e) { | |
| t(e), | |
| F() | |
| } | |
| function i(r) { | |
| var i = q(r, L.syncConversation.bind(L, e, t, n)); | |
| i || n(r) | |
| } | |
| k.fetchConversation(e).then(r, i) | |
| } | |
| , | |
| this.syncThread = function(e, t, n) { | |
| function i(e) { | |
| r.success(e), | |
| t(), | |
| F() | |
| } | |
| function s(i) { | |
| var s = q(i, L.syncThread.bind(L, e, t, n)); | |
| s || (r.error(i), | |
| n()) | |
| } | |
| var r = N("syncThread"); | |
| t = t || function() {} | |
| , | |
| n = n || function() {} | |
| , | |
| k.fetchThread(e).then(i, s) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/webapi/boundary/dispatcher", ["require", "lodash-compat", "jSkype/services/internalPubSub"], function(e) { | |
| var t = e("lodash-compat") | |
| , n = e("jSkype/services/internalPubSub"); | |
| return function(r) { | |
| function i(e) { | |
| return e = e || {}, | |
| t.isObject(e) && (e.moduleName = "webapi", | |
| e.actionName = r), | |
| e | |
| } | |
| this.success = function(e) { | |
| var t = i(e.response); | |
| n.get().publish("webapi:data", t) | |
| } | |
| , | |
| this.error = function(e) { | |
| var t = i(e); | |
| n.get().publish("webapi:error", t) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/webapi/utils/conversationMetadataStore", [], function() { | |
| var e = {}; | |
| return { | |
| get: function(t) { | |
| if (typeof t == "string" && e[t]) | |
| return e[t].syncState | |
| }, | |
| set: function(t, n) { | |
| typeof t == "string" && (e[t] = { | |
| syncState: n | |
| }) | |
| }, | |
| clear: function(t) { | |
| delete e[t] | |
| } | |
| } | |
| }), | |
| define("jSkype/services/webapi/calls/service", ["require", "lodash-compat", "browser/detect", "cafe/enums", "constants/common", "jSkype/client", "jSkype/modelHelpers/personHelper", "jSkype/services/clientInfo", "jSkype/services/webapi/constants", "jSkype/services/webapi/utils/conversationMetadataStore", "jSkype/settings"], function(e) { | |
| var t = e("lodash-compat") | |
| , n = e("browser/detect") | |
| , r = e("cafe/enums") | |
| , i = e("constants/common") | |
| , s = e("jSkype/client") | |
| , o = e("jSkype/modelHelpers/personHelper") | |
| , u = e("jSkype/services/clientInfo") | |
| , a = e("jSkype/services/webapi/constants") | |
| , f = e("jSkype/services/webapi/utils/conversationMetadataStore") | |
| , l = e("jSkype/settings"); | |
| return function(c, h, p) { | |
| function v(e, n, r, i, s) { | |
| function u(e) { | |
| return p.put(n, e) | |
| } | |
| var o = { | |
| params: {}, | |
| payload: {} | |
| }; | |
| return o.params.name = r, | |
| o.payload[r] = i, | |
| t.forOwn(s, function(e, t) { | |
| o.params[t] = e | |
| }), | |
| h.build(e, o).then(u) | |
| } | |
| var d; | |
| this.updateServiceDomain = function(e) { | |
| p.uriBuilder.setDomain(e) | |
| } | |
| , | |
| this.setConversationOption = function(e, t, n) { | |
| var r = "/conversations/" + e + "/properties" | |
| , i = c.customResource(r); | |
| return v(a.SERVICE_CALLS.SET_CONVERSATION_OPTION, i, t, n) | |
| } | |
| , | |
| this.setThreadOption = function(e, t, n) { | |
| var r = "v1/threads/" + e + "/properties"; | |
| return v(a.SERVICE_CALLS.SET_THREAD_OPTION, r, t, n) | |
| } | |
| , | |
| this.ping = function() { | |
| var e = c.ping(); | |
| return p.get(e, {}) | |
| } | |
| , | |
| this.pinToDogfood = function() { | |
| function t(e) { | |
| return p.put("v1/users/ME/properties", e) | |
| } | |
| var e = { | |
| params: { | |
| name: "dogfoodUser" | |
| }, | |
| payload: { | |
| dogfoodUser: !0 | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.PIN_TO_DOGFOOD, e).then(t) | |
| } | |
| , | |
| this.createConversation = function(e) { | |
| function n(e) { | |
| return p.post("v1/threads", e) | |
| } | |
| var t = { | |
| payload: { | |
| members: e | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.CREATE_CONVERSATION, t).then(n) | |
| } | |
| , | |
| this.postMessage = function(e, t) { | |
| function i(e) { | |
| return p.post(n, e) | |
| } | |
| function s(e) {} | |
| var n = c.messages(e) | |
| , r = { | |
| payload: t | |
| }; | |
| return h.build(a.SERVICE_CALLS.POST_MESSAGE, r).then(i, s) | |
| } | |
| , | |
| this.addParticipant = function(e, t, n) { | |
| function o(e) { | |
| return p.put(i, e) | |
| } | |
| var i = c.member(e, t) | |
| , s = { | |
| payload: { | |
| role: n === r.participantRole.Leader ? "Admin" : "User" | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.ADD_PARTICIPANT, s).then(o) | |
| } | |
| , | |
| this.removeParticipant = function(e, t) { | |
| function r(e) { | |
| return p.remove(n, e) | |
| } | |
| var n = c.member(e, t); | |
| return h.build(a.SERVICE_CALLS.REMOVE_PARTICIPANT).then(r) | |
| } | |
| , | |
| this.setConsumptionHorizon = function(e, t) { | |
| var n = "/conversations/" + e + "/properties" | |
| , o = c.customResource(n) | |
| , u = {}; | |
| return l.isFeatureOn(i.featureFlags.READ_RECEIPT_ENABLED) && s.get().personsAndGroupsManager.mePerson.status() === r.onlineStatus.Online && (u.readReceipt = !0), | |
| v(a.SERVICE_CALLS.SET_CONSUMPTION_HORIZON, o, "consumptionhorizon", t, u) | |
| } | |
| , | |
| this.fetchMessages = function(e, t, n) { | |
| function o(e) { | |
| return p.get(r, e) | |
| } | |
| var r = c.messages(e) | |
| , s = { | |
| params: { | |
| startTime: t, | |
| pageSize: n, | |
| view: "msnp24Equivalent" + (l.isFeatureOn(i.featureFlags.SUPPORT_MESSAGE_PROPERTIES) ? "|supportsMessageProperties" : ""), | |
| targetType: "Passport|Skype|Lync|Thread" + (l.isFeatureOn(i.featureFlags.PSTN_ENABLED) ? "|PSTN" : "") + (l.isFeatureOn(i.featureFlags.AGENTS_ENABLED) ? "|Agent" : "") | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_MESSAGES, s).then(o) | |
| } | |
| , | |
| this.fetchMessagesLoadMore = function(e, t) { | |
| function s(e) { | |
| return p.get(n, e) | |
| } | |
| var n = c.messages(e) | |
| , r = { | |
| params: { | |
| syncState: f.get(e), | |
| startTime: 0, | |
| pageSize: t, | |
| view: "msnp24Equivalent" + (l.isFeatureOn(i.featureFlags.SUPPORT_MESSAGE_PROPERTIES) ? "|supportsMessageProperties" : "") | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_MESSAGES_LOAD_MORE, r).then(s) | |
| } | |
| , | |
| this.fetchThread = function(e) { | |
| function r(e) { | |
| return p.get(t, e) | |
| } | |
| var t = c.thread(e) | |
| , n = { | |
| params: { | |
| view: "msnp24Equivalent" | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_THREAD, n).then(r) | |
| } | |
| , | |
| this.fetchConversation = function(e) { | |
| function r(e) { | |
| return p.get(t, e) | |
| } | |
| var t = c.conversations(e) | |
| , n = { | |
| params: { | |
| view: "msnp24Equivalent" | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_CONVERSATION, n).then(r) | |
| } | |
| , | |
| this.fetchConversations = function(e, t) { | |
| function s(e) { | |
| return p.get(n, e) | |
| } | |
| var n = c.conversations() | |
| , r = { | |
| params: { | |
| startTime: e, | |
| pageSize: t, | |
| view: "msnp24Equivalent", | |
| targetType: "Passport|Skype|Lync|Thread" + (l.isFeatureOn(i.featureFlags.PSTN_ENABLED) ? "|PSTN" : "") + (l.isFeatureOn(i.featureFlags.AGENTS_ENABLED) ? "|Agent" : "") | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_CONVERSATIONS, r).then(s) | |
| } | |
| , | |
| this.fetchConversationsBySyncState = function(e, t) { | |
| function i(e) { | |
| return p.get(n, e) | |
| } | |
| var n = c.conversations() | |
| , r = { | |
| params: { | |
| syncState: e, | |
| pageSize: t, | |
| view: "msnp24Equivalent" | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.FETCH_CONVERSATIONS_BY_SYNC_STATE, r).then(i) | |
| } | |
| , | |
| this.requestEndpointCreation = function(e, t) { | |
| function s(t) { | |
| return e ? p.put(r, t) : p.post(r, t) | |
| } | |
| var n = "/endpoints" + (e ? "/" + e : "") | |
| , r = c.customResource(n) | |
| , i = { | |
| payload: t || {} | |
| }; | |
| return h.build(a.SERVICE_CALLS.REQUEST_ENDPOINT_CREATION, i).then(s) | |
| } | |
| , | |
| this.requestEndpointRemoval = function(e) { | |
| function i(e) { | |
| return p.remove(n, e) | |
| } | |
| if (!e) | |
| return Promise.reject(new Error("invalid endpointID")); | |
| var t = "/endpoints/" + e | |
| , n = c.customResource(t) | |
| , r = { | |
| payload: {} | |
| }; | |
| return h.build(a.SERVICE_CALLS.REQUEST_ENDPOINT_DELETION, r).then(i) | |
| } | |
| , | |
| this.requestSubscriptionCreation = function(e) { | |
| function r(e) { | |
| return p.post(t, e) | |
| } | |
| var t = c.customResource("/endpoints/SELF/subscriptions") | |
| , n = { | |
| payload: { | |
| channelType: "httpLongPoll", | |
| template: "raw", | |
| interestedResources: e | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.REQUEST_SUBSCRIPTION_CREATION, n).then(r) | |
| } | |
| , | |
| this.requestPolling = function(e) { | |
| function n(e) { | |
| var n = p.post(t, e); | |
| return d = n, | |
| n | |
| } | |
| var t = c.customResource("/poll", e); | |
| return h.build(a.SERVICE_CALLS.REQUEST_POLLING).then(n) | |
| } | |
| , | |
| this.abortCurrentPoll = function() { | |
| d && d._abort() | |
| } | |
| , | |
| this.setEndpointPresence = function() { | |
| function i(t) { | |
| return p.put(e, t) | |
| } | |
| var e = c.constructPresenceEndpointURI("/presenceDocs/messagingService") | |
| , t = n.getSystemInfo() | |
| , r = { | |
| id: "messagingService", | |
| type: "EndpointPresenceDoc", | |
| selfLink: "uri", | |
| privateInfo: { | |
| epname: "skype" | |
| }, | |
| publicInfo: { | |
| capabilities: "video|audio", | |
| type: t.deviceType, | |
| skypeNameVersion: u.getBIAppName(), | |
| nodeInfo: "xx", | |
| version: u.getBIVersion() | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.SET_ENDPOINT_PRESENCE, { | |
| payload: r | |
| }).then(i) | |
| } | |
| , | |
| this.setEndpointProperty = function(e, t) { | |
| function i(e) { | |
| return p.put(n, e) | |
| } | |
| var n = c.customResource("/endpoints/SELF/properties") | |
| , r = { | |
| params: { | |
| name: e | |
| }, | |
| payload: {} | |
| }; | |
| return r.payload[e] = t, | |
| h.build(a.SERVICE_CALLS.SET_ENDPOINT_PROPERTY, r).then(i) | |
| } | |
| , | |
| this.activateEndpoint = function() { | |
| function n(t) { | |
| return p.post(e, t) | |
| } | |
| var e = c.constructPresenceEndpointURI("/active") | |
| , t = { | |
| payload: { | |
| timeout: a.ACTIVATE_ENDPOINT_TIMEOUT / 1e3 | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.ACTIVATE_ENDPOINT, t).then(n) | |
| } | |
| , | |
| this.setUserPresence = function(e) { | |
| function i(e) { | |
| return p.put(n, e) | |
| } | |
| var n = c.customResource("/presenceDocs/messagingService") | |
| , r = { | |
| payload: { | |
| status: t.capitalize(e) | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.SET_USER_PRESENCE, r).then(i) | |
| } | |
| , | |
| this.getUserPresence = function(e) { | |
| function r(e) { | |
| return p.get(n, e) | |
| } | |
| var t = "/presenceDocs/messagingService" | |
| , n = c.contacts(e, t); | |
| return h.build(a.SERVICE_CALLS.GET_USER_PRESENCE).then(r) | |
| } | |
| , | |
| this.sendContactsList = function(e) { | |
| function r(e) { | |
| return { | |
| id: o.getKey(e.id(), e._type()) | |
| } | |
| } | |
| function i(e) { | |
| return p.post(t, e) | |
| } | |
| var t = c.contacts() | |
| , n = { | |
| payload: { | |
| contacts: e.map(r) | |
| } | |
| }; | |
| return h.build(a.SERVICE_CALLS.SEND_CONTACT_LIST, n).then(i) | |
| } | |
| , | |
| this.addContactToContactsList = function(e) { | |
| function n(e) { | |
| return p.put(t, e) | |
| } | |
| var t = c.contacts(e); | |
| return h.build(a.SERVICE_CALLS.ADD_CONTACT_TO_CONTACTS_LIST).then(n) | |
| } | |
| , | |
| this.removeContactFromContactsList = function(e) { | |
| function n(e) { | |
| return p.remove(t, e) | |
| } | |
| var t = c.contacts(e); | |
| return h.build(a.SERVICE_CALLS.REMOVE_CONTACT_FROM_CONTACTS_LIST).then(n) | |
| } | |
| , | |
| this.getSelfProperties = function() { | |
| function t(t) { | |
| return p.get(e, t) | |
| } | |
| var e = c.customResource("/properties"); | |
| return h.build(a.SERVICE_CALLS.GET_SELF_PROPERTIES).then(t) | |
| } | |
| , | |
| this.setMessageProperty = function(e, t, n, r) { | |
| function o(e) { | |
| return p.put(i, e) | |
| } | |
| var i = c.messageProperties(e, t) | |
| , s = { | |
| params: { | |
| name: n | |
| }, | |
| payload: {} | |
| }; | |
| return s.payload[n] = JSON.stringify(r), | |
| h.build(a.SERVICE_CALLS.SET_MESSAGE_PROPERTY, s).then(o) | |
| } | |
| , | |
| this.removeMessageProperty = function(e, t, n, r) { | |
| function u(e) { | |
| return s.hasOwnProperty(e) && s[e] === n | |
| } | |
| function l(e) { | |
| return p.remove(i, e) | |
| } | |
| var i = c.messageProperties(e, t) | |
| , s = a.MESSAGE_PROPERTIES.PER_USER | |
| , o = { | |
| params: { | |
| name: n | |
| } | |
| }; | |
| for (var f in s) | |
| if (u(f)) { | |
| o.payload = {}, | |
| o.payload[n] = JSON.stringify({ | |
| key: r | |
| }); | |
| break | |
| } | |
| return h.build(a.SERVICE_CALLS.REMOVE_MESSAGE_PROPERTY, o).then(l) | |
| } | |
| , | |
| this.removeAllMessages = function(e) { | |
| function n(e) { | |
| return p.remove(t, e) | |
| } | |
| var t = c.messages(e); | |
| return h.build(a.SERVICE_CALLS.REMOVE_ALL_MESSAGES).then(n) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/serviceAccessLayer/transientFaultPolicy", [], function() { | |
| function t(e) { | |
| return e.status === 0 | |
| } | |
| function n(e) { | |
| return e instanceof XMLHttpRequest | |
| } | |
| function r(e, t) { | |
| return t.test(e.status) | |
| } | |
| var e = { | |
| success: /^(2)\d{2}/, | |
| redirection: /^(3)\d{2}/, | |
| serverError: /^(5)\d{2}/ | |
| }; | |
| return { | |
| isWebApiSuccess: function(t) { | |
| return n(t) ? r(t, e.success) || r(t, e.redirection) : !1 | |
| }, | |
| isTransientFailure: function(i) { | |
| return n(i) ? t(i) || r(i, e.serverError) : !1 | |
| } | |
| } | |
| }), | |
| define("jSkype/services/webapi/builders/requestOptionsBuilder", ["require", "jcafe-property-model", "jSkype/settings", "jSkype/services/serviceAccessLayer/transientFaultPolicy"], function(e) { | |
| var t = e("jcafe-property-model") | |
| , n = e("jSkype/settings") | |
| , r = e("jSkype/services/serviceAccessLayer/transientFaultPolicy"); | |
| return function(i) { | |
| this.build = function(e, s) { | |
| function h(t) { | |
| var n = { | |
| headers: t, | |
| retry: { | |
| limit: a, | |
| delay: f, | |
| strategy: l, | |
| isTransientCheck: r.isTransientFailure, | |
| isSuccessCheck: r.isWebApiSuccess | |
| }, | |
| reporting: { | |
| serviceName: "webapi-" + e | |
| } | |
| }; | |
| s && s.payload && (n.payload = JSON.stringify(s.payload)), | |
| s && s.params && (n.params = s.params), | |
| o.resolve(n) | |
| } | |
| var o = t.task() | |
| , u = n.settings.webApiService | |
| , a = u.retry.limit | |
| , f = u.retry.delay | |
| , l = u.retry.strategy | |
| , c = u.overrides && u.overrides[e]; | |
| return i.fetch(e).then(h, o.reject.bind(o)), | |
| c && (f = c.delay || f, | |
| a = c.limit || a, | |
| l = c.strategy || l), | |
| o.promise | |
| } | |
| } | |
| }), | |
| define("utils/common/regex", ["require", "exports", "module"], function(e, t) { | |
| t.escapeSpecialChars = function(e) { | |
| return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") | |
| } | |
| , | |
| t.multilineRegExp = function(e, t) { | |
| return new RegExp(e.join(""),t) | |
| } | |
| }), | |
| define("services/pes/emoticons/encoder", [], function() { | |
| function e() { | |
| var e = this; | |
| e.map = { | |
| ":)": "smile", | |
| ":-)": "smile", | |
| ":=)": "smile", | |
| "(smile)": "smile", | |
| ":(": "sad", | |
| ":-(": "sad", | |
| ":=(": "sad", | |
| "(sad)": "sad", | |
| ":<": "sad", | |
| ":-<": "sad", | |
| ":D": "laugh", | |
| ":-D": "laugh", | |
| ":=D": "laugh", | |
| ":d": "laugh", | |
| ":-d": "laugh", | |
| ":=d": "laugh", | |
| "(laugh)": "laugh", | |
| ":>": "laugh", | |
| ":->": "laugh", | |
| "(lol)": "laugh", | |
| "(LOL)": "laugh", | |
| "(cool)": "cool", | |
| "8-)": "cool", | |
| "8=)": "cool", | |
| "B-)": "cool", | |
| "B=)": "cool", | |
| ":O": "surprised", | |
| ":-O": "surprised", | |
| ":=O": "surprised", | |
| ":o": "surprised", | |
| ":-o": "surprised", | |
| ":=o": "surprised", | |
| "(surprised)": "surprised", | |
| ";)": "wink", | |
| ";-)": "wink", | |
| ";=)": "wink", | |
| "(wink)": "wink", | |
| ";(": "cry", | |
| ";-(": "cry", | |
| ";=(": "cry", | |
| "(cry)": "cry", | |
| ":'(": "cry", | |
| "(:|": "sweat", | |
| "(sweat)": "sweat", | |
| ":|": "speechless", | |
| ":-|": "speechless", | |
| ":=|": "speechless", | |
| "(speechless)": "speechless", | |
| "(kiss)": "kiss", | |
| ":*": "kiss", | |
| ":-*": "kiss", | |
| ":=*": "kiss", | |
| "(xo)": "kiss", | |
| "(K)": "kiss", | |
| "(k)": "kiss", | |
| ":P": "tongueout", | |
| ":-P": "tongueout", | |
| ":=P": "tongueout", | |
| ":p": "tongueout", | |
| ":-p": "tongueout", | |
| ":=p": "tongueout", | |
| "(tongueout)": "tongueout", | |
| ":$": "blush", | |
| ":-$": "blush", | |
| ":=$": "blush", | |
| ':">': "blush", | |
| "(blush)": "blush", | |
| ":^)": "wonder", | |
| "(wonder)": "wonder", | |
| "|-)": "sleepy", | |
| "I-)": "sleepy", | |
| "I=)": "sleepy", | |
| "(snooze)": "sleepy", | |
| "|-(": "dull", | |
| "|(": "dull", | |
| "|=(": "dull", | |
| "(dull)": "dull", | |
| "(inlove)": "inlove", | |
| "(love)": "inlove", | |
| ":]": "inlove", | |
| ":-]": "inlove", | |
| "]:)": "eg", | |
| ">:)": "eg", | |
| "(grin)": "eg", | |
| "(yn)": "fingerscrossed", | |
| "(fingers)": "fingerscrossed", | |
| "(fingerscrossed)": "fingerscrossed", | |
| "(crossedfingers)": "fingerscrossed", | |
| "(yawn)": "yawn", | |
| "(puke)": "puke", | |
| ":&": "puke", | |
| ":-&": "puke", | |
| ":=&": "puke", | |
| "+o(": "puke", | |
| "(doh)": "doh", | |
| "(angry)": "angry", | |
| ":@": "angry", | |
| ":-@": "angry", | |
| ":=@": "angry", | |
| "x(": "angry", | |
| "x-(": "angry", | |
| "X(": "angry", | |
| "X-(": "angry", | |
| "x=(": "angry", | |
| "X=(": "angry", | |
| ";@": "angry", | |
| ";-@": "angry", | |
| "(wasntme)": "wasntme", | |
| "(wm)": "wasntme", | |
| "(party)": "party", | |
| "<O)": "party", | |
| "<o)": "party", | |
| "<:o)": "party", | |
| "(worry)": "worry", | |
| ":S": "worry", | |
| ":s": "worry", | |
| ":-s": "worry", | |
| ":-S": "worry", | |
| ":=s": "worry", | |
| ":=S": "worry", | |
| "(mm)": "mmm", | |
| "(mmm)": "mmm", | |
| "(mmmm)": "mmm", | |
| "(nerd)": "nerdy", | |
| "8-|": "nerdy", | |
| "B-|": "nerdy", | |
| "8|": "nerdy", | |
| "B|": "nerdy", | |
| "8=|": "nerdy", | |
| "B=|": "nerdy", | |
| ":x": "lipssealed", | |
| ":-x": "lipssealed", | |
| ":X": "lipssealed", | |
| ":-X": "lipssealed", | |
| ":#": "lipssealed", | |
| ":-#": "lipssealed", | |
| ":=x": "lipssealed", | |
| ":=X": "lipssealed", | |
| ":=#": "lipssealed", | |
| "(wave)": "hi", | |
| "(hi)": "hi", | |
| "(bye)": "hi", | |
| "(BYE)": "hi", | |
| "(Bye)": "hi", | |
| "(Hi)": "hi", | |
| "(HI)": "hi", | |
| "(facepalm)": "facepalm", | |
| "(fail)": "facepalm", | |
| "(devil)": "devil", | |
| "(6)": "devil", | |
| "(angel)": "angel", | |
| "(A)": "angel", | |
| "(a)": "angel", | |
| "(envy)": "envy", | |
| "(V)": "envy", | |
| "(v)": "envy", | |
| "(wait)": "wait", | |
| "(hug)": "hug", | |
| "(bear)": "hug", | |
| "(makeup)": "makeup", | |
| "(kate)": "makeup", | |
| "(chuckle)": "giggle", | |
| "(giggle)": "giggle", | |
| "(clap)": "clap", | |
| "(think)": "think", | |
| ":-?": "think", | |
| ":?": "think", | |
| ":=?": "think", | |
| "*-)": "think", | |
| "(bow)": "bow", | |
| "(rofl)": "rofl", | |
| "(rotfl)": "rofl", | |
| "(whew)": "whew", | |
| "(phew)": "whew", | |
| "(happy)": "happy", | |
| "(smirk)": "smirk", | |
| "(nod)": "nod", | |
| "(shake)": "shake", | |
| "(waiting)": "waiting", | |
| "(forever)": "waiting", | |
| "(impatience)": "waiting", | |
| "(emo)": "emo", | |
| "(y)": "yes", | |
| "(Y)": "yes", | |
| "(ok)": "yes", | |
| "(yes)": "yes", | |
| "(OK)": "yes", | |
| "(oK)": "yes", | |
| "(Ok)": "yes", | |
| "(n)": "no", | |
| "(N)": "no", | |
| "(no)": "no", | |
| "(handshake)": "handshake", | |
| "(highfive)": "highfive", | |
| "(hifive)": "highfive", | |
| "(h5)": "highfive", | |
| "(heart)": "heart", | |
| "(h)": "heart", | |
| "(H)": "heart", | |
| "(l)": "heart", | |
| "(L)": "heart", | |
| "<3": "heart", | |
| "(lalala)": "lalala", | |
| "(lalalala)": "lalala", | |
| "(lala)": "lalala", | |
| "(notlistening)": "lalala", | |
| "(heidy)": "heidy", | |
| "(squirrel)": "heidy", | |
| "(F)": "flower", | |
| "(f)": "flower", | |
| "(flower)": "flower", | |
| "(rain)": "rain", | |
| "(london)": "rain", | |
| "(st)": "rain", | |
| "(ST)": "rain", | |
| "(St)": "rain", | |
| "(sun)": "sun", | |
| "(#)": "sun", | |
| "(tumbleweed)": "tumbleweed", | |
| "(music)": "music", | |
| "(8)": "music", | |
| "(bandit)": "bandit", | |
| "(tmi)": "tmi", | |
| "(coffee)": "coffee", | |
| "(c)": "coffee", | |
| "(C)": "coffee", | |
| "(pi)": "pizza", | |
| "(pizza)": "pizza", | |
| "(cash)": "cash", | |
| "(mo)": "cash", | |
| "($)": "cash", | |
| "(flex)": "muscle", | |
| "(muscle)": "muscle", | |
| "(^)": "cake", | |
| "(cake)": "cake", | |
| "(beer)": "beer", | |
| "(bricklayers)": "beer", | |
| "(B)": "beer", | |
| "(b)": "beer", | |
| "(d)": "drink", | |
| "(D)": "drink", | |
| "(drink)": "drink", | |
| "\\o/": "dance", | |
| "\\:D/": "dance", | |
| "\\:d/": "dance", | |
| "(dance)": "dance", | |
| "(ninja)": "ninja", | |
| "(J)": "ninja", | |
| "(j)": "ninja", | |
| "(*)": "star", | |
| "(star)": "star", | |
| "(headbang)": "headbang", | |
| "(banghead)": "headbang", | |
| "(swear)": "swear", | |
| "(drunk)": "drunk", | |
| "(finger)": "finger", | |
| "(poolparty)": "poolparty", | |
| "(hrv)": "poolparty", | |
| "(rock)": "rock", | |
| "(smoking)": "smoke", | |
| "(smoke)": "smoke", | |
| "(ci)": "smoke", | |
| "(bug)": "bug", | |
| "(toivo)": "toivo", | |
| "(wfh)": "wfh", | |
| "(@h)": "wfh", | |
| "(@H)": "wfh", | |
| "(hollest)": "hollest", | |
| "(zilmer)": "priidu", | |
| "(e)": "mail", | |
| "(m)": "mail", | |
| "(mail)": "mail", | |
| "(E)": "mail", | |
| "(o)": "time", | |
| "(O)": "time", | |
| "(time)": "time", | |
| "(clock)": "time", | |
| "(0)": "time", | |
| "(~)": "movie", | |
| "(film)": "movie", | |
| "(movie)": "movie", | |
| "(mp)": "phone", | |
| "(ph)": "phone", | |
| "(phone)": "phone", | |
| "(talk)": "talk", | |
| "(call)": "call", | |
| "(T)": "call", | |
| "(t)": "call", | |
| "(punch)": "punch", | |
| "*|": "punch", | |
| "*-|": "punch", | |
| "(skype)": "skype", | |
| "(ss)": "skype", | |
| "(u)": "brokenheart", | |
| "(U)": "brokenheart", | |
| "(brokenheart)": "brokenheart", | |
| "(mooning)": "mooning", | |
| "(oliver)": "oliver", | |
| "(bartlett)": "bertlett", | |
| "(football)": "bertlett", | |
| "(soccer)": "bertlett", | |
| "(so)": "bertlett", | |
| "(talktothehand)": "talktothehand", | |
| "(idea)": "idea", | |
| ":i": "idea", | |
| ":I": "idea", | |
| "*-:)": "idea", | |
| "(sheep)": "sheep", | |
| "(bah)": "sheep", | |
| "(cat)": "cat", | |
| ":3": "cat", | |
| "(@)": "cat", | |
| "(meow)": "cat", | |
| "(bike)": "bike", | |
| "(bicycle)": "bike", | |
| "(sander)": "bike", | |
| "(dog)": "dog", | |
| ":o3": "dog", | |
| "(&)": "dog" | |
| }, | |
| e.maxLength = 16, | |
| e.minLength = 2, | |
| e.firstLetters = "8:(B;|I]>+xX<*\\", | |
| e.firstLettersMap = { | |
| 8: "8", | |
| ":": ":", | |
| "(": "(", | |
| B: "B", | |
| ";": ";", | |
| "|": "|", | |
| I: "I", | |
| "]": "]", | |
| ">": ">", | |
| "+": "+", | |
| x: "x", | |
| X: "X", | |
| "<": "<", | |
| "*": "*", | |
| "\\": "\\" | |
| } | |
| } | |
| return new e | |
| }), | |
| define("utils/common/countryCodes", [], function() { | |
| return { | |
| eu: "Europe", | |
| uk: "United Kingdom", | |
| af: "Afghanistan", | |
| ax: "Åland Islands", | |
| al: "Albania", | |
| dz: "Algeria", | |
| as: "American Samoa", | |
| ad: "Andorra", | |
| ao: "Angola", | |
| ai: "Anguilla", | |
| aq: "Antarctica", | |
| ag: "Antigua and Barbuda", | |
| ar: "Argentina", | |
| am: "Armenia", | |
| aw: "Aruba", | |
| au: "Australia", | |
| at: "Austria", | |
| az: "Azerbaijan", | |
| bs: "Bahamas", | |
| bh: "Bahrain", | |
| bd: "Bangladesh", | |
| bb: "Barbados", | |
| by: "Belarus", | |
| be: "Belgium", | |
| bz: "Belize", | |
| bj: "Benin", | |
| bm: "Bermuda", | |
| bt: "Bhutan", | |
| bo: "Bolivia, Plurinational State of", | |
| ba: "Bosnia and Herzegovina", | |
| bw: "Botswana", | |
| bv: "Bouvet Island", | |
| br: "Brazil", | |
| io: "British Indian Ocean Territory", | |
| bn: "Brunei Darussalam", | |
| bg: "Bulgaria", | |
| bf: "Burkina Faso", | |
| bi: "Burundi", | |
| kh: "Cambodia", | |
| cm: "Cameroon", | |
| ca: "Canada", | |
| cv: "Cabo Verde", | |
| ky: "Cayman Islands", | |
| cf: "Central African Republic", | |
| td: "Chad", | |
| cl: "Chile", | |
| cn: "China", | |
| cx: "Christmas Island", | |
| cc: "Cocos (Keeling) Islands", | |
| co: "Colombia", | |
| km: "Comoros", | |
| cg: "Congo", | |
| cd: "Congo, the Democratic Republic of the", | |
| ck: "Cook Islands", | |
| cr: "Costa Rica", | |
| ci: "Côte d'Ivoire", | |
| hr: "Croatia", | |
| cu: "Cuba", | |
| cy: "Cyprus", | |
| cz: "Czech Republic", | |
| dk: "Denmark", | |
| dj: "Djibouti", | |
| dm: "Dominica", | |
| "do": "Dominican Republic", | |
| ec: "Ecuador", | |
| eg: "Egypt", | |
| sv: "El Salvador", | |
| gq: "Equatorial Guinea", | |
| er: "Eritrea", | |
| ee: "Estonia", | |
| et: "Ethiopia", | |
| fk: "Falkland Islands (Malvinas)", | |
| fo: "Faroe Islands", | |
| fj: "Fiji", | |
| fi: "Finland", | |
| fr: "France", | |
| gf: "French Guiana", | |
| pf: "French Polynesia", | |
| tf: "French Southern Territories", | |
| ga: "Gabon", | |
| gm: "Gambia", | |
| ge: "Georgia", | |
| de: "Germany", | |
| gh: "Ghana", | |
| gi: "Gibraltar", | |
| gr: "Greece", | |
| gl: "Greenland", | |
| gd: "Grenada", | |
| gp: "Guadeloupe", | |
| gu: "Guam", | |
| gt: "Guatemala", | |
| gg: "Guernsey", | |
| gn: "Guinea", | |
| gw: "Guinea-Bissau", | |
| gy: "Guyana", | |
| ht: "Haiti", | |
| hm: "Heard Island and McDonald Islands", | |
| va: "Holy See (Vatican City State)", | |
| hn: "Honduras", | |
| hk: "Hong Kong", | |
| hu: "Hungary", | |
| is: "Iceland", | |
| "in": "India", | |
| id: "Indonesia", | |
| ir: "Iran, Islamic Republic of", | |
| iq: "Iraq", | |
| ie: "Ireland", | |
| im: "Isle of Man", | |
| il: "Israel", | |
| it: "Italy", | |
| jm: "Jamaica", | |
| jp: "Japan", | |
| je: "Jersey", | |
| jo: "Jordan", | |
| kz: "Kazakhstan", | |
| ke: "Kenya", | |
| ki: "Kiribati", | |
| kp: "Korea, Democratic People's Republic of", | |
| kr: "Korea, Republic of", | |
| kw: "Kuwait", | |
| kg: "Kyrgyzstan", | |
| la: "Lao People's Democratic Republic", | |
| lv: "Latvia", | |
| lb: "Lebanon", | |
| ls: "Lesotho", | |
| lr: "Liberia", | |
| ly: "Libya", | |
| li: "Liechtenstein", | |
| lt: "Lithuania", | |
| lu: "Luxembourg", | |
| mo: "Macao SAR", | |
| mk: "Macedonia, the former Yugoslav Republic of", | |
| mg: "Madagascar", | |
| mw: "Malawi", | |
| my: "Malaysia", | |
| mv: "Maldives", | |
| ml: "Mali", | |
| mt: "Malta", | |
| mh: "Marshall Islands", | |
| mq: "Martinique", | |
| mr: "Mauritania", | |
| mu: "Mauritius", | |
| yt: "Mayotte", | |
| mx: "Mexico", | |
| fm: "Micronesia, Federated States of", | |
| md: "Moldova, Republic of", | |
| mc: "Monaco", | |
| mn: "Mongolia", | |
| me: "Montenegro", | |
| ms: "Montserrat", | |
| ma: "Morocco", | |
| mz: "Mozambique", | |
| mm: "Myanmar", | |
| na: "Namibia", | |
| nr: "Nauru", | |
| np: "Nepal", | |
| nl: "Netherlands", | |
| an: "Netherlands Antilles", | |
| nc: "New Caledonia", | |
| nz: "New Zealand", | |
| ni: "Nicaragua", | |
| ne: "Niger", | |
| ng: "Nigeria", | |
| nu: "Niue", | |
| nf: "Norfolk Island", | |
| mp: "Northern Mariana Islands", | |
| no: "Norway", | |
| om: "Oman", | |
| pk: "Pakistan", | |
| pw: "Palau", | |
| ps: "Palestinian Authority", | |
| pa: "Panama", | |
| pg: "Papua New Guinea", | |
| py: "Paraguay", | |
| pe: "Peru", | |
| ph: "Philippines", | |
| pn: "Pitcairn", | |
| pl: "Poland", | |
| pt: "Portugal", | |
| pr: "Puerto Rico", | |
| qa: "Qatar", | |
| re: "Réunion", | |
| ro: "Romania", | |
| ru: "Russian Federation", | |
| rw: "Rwanda", | |
| bl: "Saint Barthélemy", | |
| sh: "Saint Helena, Ascension and Tristan da Cunha", | |
| kn: "Saint Kitts and Nevis", | |
| lc: "Saint Lucia", | |
| mf: "Saint Martin (French part)", | |
| pm: "Saint Pierre and Miquelon", | |
| vc: "Saint Vincent and the Grenadines", | |
| ws: "Samoa", | |
| sm: "San Marino", | |
| st: "Sao Tome and Principe", | |
| sa: "Saudi Arabia", | |
| sn: "Senegal", | |
| rs: "Serbia", | |
| sc: "Seychelles", | |
| sl: "Sierra Leone", | |
| sg: "Singapore", | |
| sk: "Slovakia", | |
| si: "Slovenia", | |
| sb: "Solomon Islands", | |
| so: "Somalia", | |
| za: "South Africa", | |
| gs: "South Georgia and the South Sandwich Islands", | |
| es: "Spain", | |
| lk: "Sri Lanka", | |
| sd: "Sudan", | |
| sr: "Suriname", | |
| sj: "Svalbard and Jan Mayen", | |
| sz: "Swaziland", | |
| se: "Sweden", | |
| ch: "Switzerland", | |
| sy: "Syrian Arab Republic", | |
| tw: "Taiwan", | |
| tj: "Tajikistan", | |
| tz: "Tanzania, United Republic of", | |
| th: "Thailand", | |
| tl: "Timor-Leste", | |
| tg: "Togo", | |
| tk: "Tokelau", | |
| to: "Tonga", | |
| tt: "Trinidad and Tobago", | |
| tn: "Tunisia", | |
| tr: "Turkey", | |
| tm: "Turkmenistan", | |
| tc: "Turks and Caicos Islands", | |
| tv: "Tuvalu", | |
| ug: "Uganda", | |
| ua: "Ukraine", | |
| ae: "United Arab Emirates", | |
| gb: "United Kingdom", | |
| us: "United States", | |
| um: "United States Minor Outlying Islands", | |
| uy: "Uruguay", | |
| uz: "Uzbekistan", | |
| vu: "Vanuatu", | |
| ve: "Venezuela, Bolivarian Republic of", | |
| vn: "Viet Nam", | |
| vg: "Virgin Islands, British", | |
| vi: "Virgin Islands, U.S.", | |
| wf: "Wallis and Futuna", | |
| ye: "Yemen", | |
| zm: "Zambia", | |
| zw: "Zimbabwe" | |
| } | |
| }), | |
| define("utils/common/encoder", ["require", "cafe/applicationInstance", "services/pes/emoticons/encoder", "utils/common/countryCodes", "constants/common", "services/serviceLocator"], function(e) { | |
| function o(e, t) { | |
| return typeof e == "undefined" ? t : e | |
| } | |
| function u() {} | |
| var t = e("cafe/applicationInstance") | |
| , n = e("services/pes/emoticons/encoder") | |
| , r = e("utils/common/countryCodes") | |
| , i = e("constants/common") | |
| , s = e("services/serviceLocator") | |
| , a = { | |
| xml: !0, | |
| emoticons: {}, | |
| countryCodes: {}, | |
| largeEmoticonClass: "large", | |
| init: function(e) { | |
| e = e || {}, | |
| this.xml = o(e.xml, this.xml), | |
| this.emoticons = o(e.emoticons, this.emoticons), | |
| this.countryCodes = o(e.countries, this.countryCodes), | |
| this.largeEmoticonClass = o(e.largeEmoticonClass, this.largeEmoticonClass) | |
| }, | |
| encode: function(e, t) { | |
| t = o(t, !0), | |
| !this.xml && t && (e = this.private.escapeXml(e)), | |
| e.search("<") !== -1 && this.xml && t && (e = this.private.escapeXml(e), | |
| u("xml escaped: " + e)); | |
| var n = ""; | |
| for (var r = 0; r < e.length; ) { | |
| var i = !0 | |
| , s = r; | |
| r = this.firstLetter(e, r); | |
| if (r !== -1) { | |
| var a = this.firstSeparator(e, r); | |
| a === -1 && (a = e.length); | |
| var f = e.substring(r, a) | |
| , l = this.private.encodeWord(f, this); | |
| l && (n += e.substring(s, r), | |
| n += l, | |
| i = !1), | |
| r = a | |
| } else | |
| r = e.length; | |
| i && (++r, | |
| n += e.substring(s, r)) | |
| } | |
| return u(n), | |
| n | |
| }, | |
| decode: function(e) { | |
| function u(e, t) { | |
| t.parentNode && t.parentNode.replaceChild(e, t) | |
| } | |
| function a() { | |
| var e = o.getElementsByTagName("flag") | |
| , n = []; | |
| for (r = 0; r < e.length; ++r) { | |
| var i = t.private.createFlagElement(c, e[r].getAttribute("country"), e[r].textContent); | |
| n.push([i, e[r]]) | |
| } | |
| for (r = 0; r < n.length; ++r) | |
| u(n[r][0], n[r][1]) | |
| } | |
| function f() { | |
| var e = o.getElementsByTagName("ss") | |
| , n = [] | |
| , i = e.length <= 3 && e.length > 0; | |
| if (i) | |
| for (r = 0; r < o.childNodes.length; ++r) { | |
| var s = o.childNodes[r].textContent.replace(" ", "").length === 0; | |
| i = i && (o.childNodes[r].tagName === "ss" || s) | |
| } | |
| var a = e.length > 20; | |
| for (r = 0; r < e.length; ++r) { | |
| var f = t.private.createEmoticonElement(c, e[r].getAttribute("type"), e[r].textContent, i, a, t.largeEmoticonClass); | |
| n.push([f, e[r]]) | |
| } | |
| for (r = 0; r < n.length; ++r) | |
| u(n[r][0], n[r][1]) | |
| } | |
| function l() { | |
| var e = o.getElementsByTagName("at") | |
| , n = []; | |
| for (r = 0; r < e.length; ++r) { | |
| var i = t.private.createMentionElement(c, e[r].getAttribute("id"), e[r].textContent); | |
| n.push([i, e[r]]) | |
| } | |
| for (r = 0; r < n.length; ++r) | |
| u(n[r][0], n[r][1]) | |
| } | |
| var t = this, n = s.resolve(i.serviceLocator.FEATURE_FLAGS), r, o; | |
| n.isFeatureOn(i.featureFlags.PES_USE_EXTRA_LARGE_EMOTICONS) && (this.largeEmoticonClass = "extraLarge"); | |
| try { | |
| var c = this.private.parseXML(this.private.encapsulateInRootElement(e)); | |
| if (c) | |
| return o = c.documentElement, | |
| a(), | |
| f(), | |
| l(), | |
| this.private.fixInvalidHTML(this.private.decapsulateFromRootElement(this.private.xmlToString(c))) | |
| } catch (h) {} | |
| return e | |
| }, | |
| escapeXml: function(e) { | |
| return this.private.escapeXml(e) | |
| }, | |
| getNodeTextContent: function(e) { | |
| var t = this.private.parseXML(this.private.encapsulateInRootElement(e)); | |
| return t && t.documentElement ? t.documentElement.textContent : e | |
| }, | |
| firstLetter: function(e, t) { | |
| t = o(t, 0); | |
| for (var n = t; n < e.length; ++n) | |
| if (!this.private.separators[e[n]]) | |
| return n; | |
| return -1 | |
| }, | |
| firstSeparator: function(e, t) { | |
| t = o(t, 0); | |
| for (var n = t; n < e.length; ++n) | |
| if (this.private.separators[e[n]]) | |
| return n; | |
| return -1 | |
| }, | |
| "private": { | |
| separators: { | |
| " ": !0, | |
| "\n": !0, | |
| "\r": !0, | |
| " ": !0, | |
| "ย ": !0, | |
| "แ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โ": !0, | |
| "โฏ": !0, | |
| "โ": !0, | |
| "ใ": !0 | |
| }, | |
| createEmoticonXmlTag: function(e, t) { | |
| return '<ss type="' + e + '">' + this.escapeXml(t) + "</ss>" | |
| }, | |
| createFlagXmlTag: function(e, t) { | |
| return '<flag country="' + e + '">' + this.escapeXml(t) + "</flag>" | |
| }, | |
| createMentionElement: function(e, n, r) { | |
| var i = t.get().personsAndGroupsManager, s = "mention", o, u, a; | |
| return n === i.mePerson.id() ? (r = i.mePerson.displayName(), | |
| s += " me") : (a = i.all.persons(n), | |
| a && (r = a.displayName())), | |
| r = this.escapeXml(r), | |
| u = e.createElement("span"), | |
| u.setAttribute("title", n), | |
| u.textContent = r, | |
| o = e.createElement("i"), | |
| o.setAttribute("class", s), | |
| o.appendChild(u), | |
| o | |
| }, | |
| createEmoticonElement: function(e, t, n, r, i, s) { | |
| var o = e.createElement("span") | |
| , u = ["emoticon"]; | |
| u.push(t), | |
| i || u.push("animated"), | |
| r && u.push(s), | |
| o.setAttribute("class", u.join(" ")); | |
| var a = e.createElement("span"); | |
| return a.textContent = n, | |
| a.setAttribute("class", "emoSprite"), | |
| o.appendChild(a), | |
| o | |
| }, | |
| createFlagElement: function(e, t, n) { | |
| var r = e.createElement("span"); | |
| return r.textContent = n, | |
| r.setAttribute("class", "flag " + t), | |
| r.textContent = "(flag:" + t + ")", | |
| r | |
| }, | |
| encapsulateInRootElement: function(e) { | |
| var t; | |
| while (t !== e) | |
| t = e, | |
| e = e.replace(/<\s*?root[\s\S]*?>.*?(<\s*?\/\s*?root\s*?>)?/ig, ""); | |
| return "<root>" + e + "</root>" | |
| }, | |
| decapsulateFromRootElement: function(e) { | |
| return e.match(/<root ?\/>/) ? "" : e.length === "</root>".length ? "" : e.substring("<root>".length, e.length - "</root>".length) | |
| }, | |
| fixInvalidHTML: function(e) { | |
| return e.replace(/<span class='emoSprite'\s*\/>/g, "<span class='emoSprite'></span>") | |
| }, | |
| encodeWord: function(e, t) { | |
| function i(e) { | |
| return t.emoticons.map[e] | |
| } | |
| function s(e) { | |
| return t.emoticons.firstLettersMap[e[0]] && i(e) | |
| } | |
| function o(e) { | |
| var t = !0 | |
| , r = e; | |
| while (t) { | |
| var i = r.replace(/[,.;?]$/, ""); | |
| t = i !== r; | |
| if (t) { | |
| n = a(i); | |
| if (n) { | |
| n += e.substring(i.length); | |
| break | |
| } | |
| } | |
| r = i | |
| } | |
| } | |
| function a(e) { | |
| e = t.private.unescapeXml(e); | |
| for (var o = e.length - 1; o >= 0; ) { | |
| var a = !1 | |
| , f = e.substring(o, r); | |
| if (s(f)) { | |
| while (o > 0) { | |
| var l = e.substring(o - 1, r); | |
| if (!s(l)) | |
| break; | |
| o--, | |
| f = e.substring(o, r) | |
| } | |
| u(f), | |
| n = t.private.createEmoticonXmlTag(i(f), f) + n, | |
| a = !0 | |
| } else if (!a && f[0] === "(") { | |
| var c = f.match(/^\(flag:(\w\w)\)$/i) | |
| , h = c && c[1]; | |
| h && t.countryCodes[h] && (n = t.private.createFlagXmlTag(h, f) + n, | |
| a = !0) | |
| } | |
| a && (r = o), | |
| --o | |
| } | |
| return n | |
| } | |
| var n = "" | |
| , r = e.length; | |
| return n = a(e), | |
| n || o(e), | |
| n === "" ? null : (r !== 0 && (n = e.substring(0, r) + n), | |
| n) | |
| }, | |
| parseXML: function(e) { | |
| var t; | |
| try { | |
| if (window.DOMParser) { | |
| var n = new DOMParser; | |
| n.async = !1, | |
| t = n.parseFromString(e, "text/xml") | |
| } else { | |
| t = new ActiveXObject("Microsoft.XMLDOM"), | |
| t.async = !1; | |
| if (t.loadXML(e)) | |
| return t | |
| } | |
| } catch (r) { | |
| return null | |
| } | |
| return t.parseError && t.parseError.errorCode !== 0 ? null : t.getElementsByTagName("parsererror").length > 0 ? null : t | |
| }, | |
| xmlToString: function(e) { | |
| var t; | |
| try { | |
| t = (new XMLSerializer).serializeToString(e) | |
| } catch (n) { | |
| t = e.xml | |
| } | |
| return t | |
| }, | |
| xmlEscapeMap: { | |
| "<": "<", | |
| ">": ">", | |
| "&": "&", | |
| '"': """, | |
| "'": "'" | |
| }, | |
| escapeXml: function(e) { | |
| var t = this.xmlEscapeMap; | |
| return e.replace(/[<>&"']/g, function(e) { | |
| return t[e] | |
| }) | |
| }, | |
| unescapeXml: function(e) { | |
| var t = { | |
| "<": "<", | |
| ">": ">", | |
| "&": "&", | |
| """: '"', | |
| "'": "'" | |
| }; | |
| return e.replace(/<|>|&|"|&apos/g, function(e) { | |
| return t[e] | |
| }) | |
| } | |
| } | |
| }; | |
| return a.init({ | |
| emoticons: n, | |
| countries: r | |
| }), | |
| a | |
| }), | |
| define("utils/chat/messageSanitizer", ["require", "services/serviceLocator", "constants/common", "utils/common/regex", "utils/common/encoder", "lodash-compat"], function(e) { | |
| function B(e, t, n) { | |
| return new RegExp("((?:<" + e + ' raw_pre="' + t + '"' + (n ? "" : ' raw_post="' + t + '"') + ">)+)([\\s\\S]*?)((?:</" + e + ">)+)","gi") | |
| } | |
| function j(e, t, n) { | |
| var r = '<{0} raw_pre="{1}" raw_post="{1}">{2}</{0}>'; | |
| return r.split("{0}").join(e).split("{1}").join(t).split("{2}").join(n) | |
| } | |
| function F() { | |
| var e = "^(https?://)?" | |
| , t = "(([0-9a-z_!~*'()\\.&=+$%-]+:)?[0-9a-z_!~*'()\\.&=+$%-]+@)?" | |
| , n = "(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])" | |
| , r = "(" + n + "\\.){3}" + n | |
| , i = "([0-9a-z][0-9a-z_-]*)?[0-9a-z]" | |
| , s = "(" + i + "\\.)+(com|org|net|edu|gov|mil|aero|arpa|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|pro|tel|travel|[a-z]{2})" | |
| , o = "(:\\d{1,5})?" | |
| , u = "([#/].*)?$" | |
| , a = [e + t + s + o + u, e + t + r + o + u, e + t + i + o + u]; | |
| return a.map(function(e) { | |
| return new RegExp(e,"i") | |
| }) | |
| } | |
| function I(e) { | |
| return P[e] | |
| } | |
| function q(e) { | |
| return e.replace(/([<>])/gi, I) | |
| } | |
| function R(e) { | |
| return e.replace(/(<|>)/gi, I) | |
| } | |
| function U(e) { | |
| return e.replace(/([<>&"'])/gi, I) | |
| } | |
| function z(e) { | |
| return e.replace(/&(lt|gt|amp|quot|apos);/gi, I) | |
| } | |
| function W(e, t) { | |
| return e.replace(t, R) | |
| } | |
| function X(e) { | |
| function l(e, t) { | |
| return s[i] = t, | |
| e.replace(t, "DUMMY" + i++) | |
| } | |
| function c(e, n) { | |
| t = t.replace("DUMMY" + n, e) | |
| } | |
| var t, n, r, i = 0, s = [], o, u = new RegExp(a,"gi"), f = new RegExp(a,"i"); | |
| r = u.exec(e); | |
| if (!r) | |
| return e; | |
| n = e; | |
| while (r) | |
| o = r[0].match(f).splice(1), | |
| t = o.reduce(l, r[0]), | |
| t = R(t), | |
| s.forEach(c), | |
| n = n.replace(r[0], t), | |
| r = u.exec(e); | |
| return n | |
| } | |
| function V(e) { | |
| var t = e.match(b).slice(1); | |
| return t.reduce(W, e) | |
| } | |
| function $(e, t) { | |
| var n = /(<a|<a)/; | |
| return e.search(r.escapeSpecialChars(t)) > -1 ? e : e.replace(n, function(e) { | |
| return e + " " + t | |
| }) | |
| } | |
| function J(e, t, n, r, i) { | |
| var s, o; | |
| return s = R(t), | |
| o = R(i), | |
| n.indexOf(H) !== 0 && (s = $(s, 'target="_blank"')), | |
| s = $(s, 'tabindex="-1"'), | |
| s = $(s, 'title="' + n + '"'), | |
| s + r + o | |
| } | |
| function K(e, t) { | |
| var n, r = "<", i = /(\+?[\s\d\-]*\d)</i; | |
| return n = t.match(i)[0], | |
| n.slice(0, n.length - r.length) | |
| } | |
| function Q(e) { | |
| return U(e.replace(u, J)) | |
| } | |
| function G(e) { | |
| return z(e.replace(u, J)) | |
| } | |
| function Y(e) { | |
| return e.replace(/<a(:?>|\s.*?>)/g, "").replace(/<\/a>/g, "") | |
| } | |
| function Z(e) { | |
| function t(e, t) { | |
| return e.replace(N[t], "") | |
| } | |
| return Object.keys(N).reduce(t, e) | |
| } | |
| function et(e) { | |
| function t(e, t, n, r, i) { | |
| var s = D[e] || D.default; | |
| return e === "rawFontColor" && (n = n.replace(/font(\s+)color/i, "font color")), | |
| R(n.substr(0, s.opening)) + r + R(i.substr(0, s.closing)) | |
| } | |
| function n(e, n) { | |
| return e.replace(M[n], t.bind(null , n)) | |
| } | |
| return Object.keys(M).reduce(n, e) | |
| } | |
| function tt(e, t) { | |
| function u() { | |
| return t && Object.keys(t).length > 0 && !f(e) && e.length > 1 | |
| } | |
| function a(e) { | |
| return t[e] !== undefined | |
| } | |
| function f(e) { | |
| return !e || !/\S/.test(e) | |
| } | |
| function l(e, t) { | |
| var n; | |
| for (var r = 0; r < e.length; r++) { | |
| n = e[r]; | |
| if (t !== undefined && t.length > 0 && t.indexOf(n) !== -1) | |
| continue;return n === " " | |
| } | |
| return !0 | |
| } | |
| function c(e) { | |
| return e.split("").reverse().join("") | |
| } | |
| function h(e, t, n) { | |
| var r = [",", ".", ";", ":", "?", "!", "(", ")"]; | |
| return a(t) ? l(c(e), r) || l(n, r) : !1 | |
| } | |
| function p(e, t, n, r) { | |
| var i = [",", ".", ";", ":", "?", "!", "(", ")"]; | |
| return n !== e || s.first(r) === e ? !1 : l(c(t), i) || l(r, i) | |
| } | |
| function d(e, t, n) { | |
| for (var r = t; r <= e.length; r++) | |
| if (n(e.substring(0, r), e[r], e.substring(r + 1, e.length))) | |
| return r; | |
| return -1 | |
| } | |
| function v(e, t, n) { | |
| var r = t, i, s; | |
| do { | |
| r += 1, | |
| i = d(e, r, p.bind(null , n)); | |
| if (i === -1) | |
| return -1; | |
| s = e.substring(t + 1, i) | |
| } while (f(s));return i | |
| } | |
| var n = 0, r, i, o; | |
| if (!u()) | |
| return []; | |
| do { | |
| if (n >= e.length - 1) | |
| return []; | |
| r = d(e, n, h); | |
| if (r === -1) | |
| return []; | |
| o = e.charAt(r), | |
| i = v(e, r, o), | |
| t = s.omit(t, o), | |
| n += 1 | |
| } while (i === -1);return [r, i] | |
| } | |
| function nt(e, t) { | |
| var n = tt(t, e), r = n[0], i = n[1], o, u, a, f, l, c, h; | |
| return r === undefined || i === undefined || r < 0 || i < 0 ? t : (o = t.charAt(r), | |
| u = e[o], | |
| h = t.substring(0, r), | |
| a = t.substring(r + 1, i), | |
| l = t.substring(i + 1), | |
| f = nt(s.omit(e, o), a), | |
| f = u(f), | |
| c = nt(e, l), | |
| h + f + c) | |
| } | |
| function rt(e) { | |
| var t = e.split(/\r?\n/), n; | |
| return n = s.map(t, function(e) { | |
| return nt(_, e) | |
| }), | |
| n.join("\r\n") | |
| } | |
| function it(e, t) { | |
| function r(e) { | |
| function n(e) { | |
| return e.test(t) | |
| } | |
| var t = e.replace(/[\u0080-\u9999]/g, "z"); | |
| return k.some(n) | |
| } | |
| function i(e) { | |
| return e.replace(/(["\''])/gi, I) | |
| } | |
| function s(e, s) { | |
| return r(s) ? (s = i(s), | |
| n = /^w{3}\./i.test(s) ? "http://" + s : s, | |
| "<a" + (t ? "" : ' tabindex="-1" target="_blank"') + ' href="' + n + '">' + s + "</a>") : s | |
| } | |
| function o(e, t) { | |
| return r(t) ? '<a href="mailto:' + t + '">' + t + "</a>" : t | |
| } | |
| var n; | |
| return e.replace(C, s).replace(f, o) | |
| } | |
| function st(e, t, n) { | |
| var r = q(e.replace(/&/g, "&")), i = r.match(t), s; | |
| return i ? i.forEach(function(e, t) { | |
| var o = r.indexOf(e), u = o + e.length, a = i[t + 1], f; | |
| t === 0 && (s = n(r.substring(0, o))), | |
| s += r.substring(o, u), | |
| r = r.substring(u), | |
| f = a ? r.indexOf(a) : undefined, | |
| s += n(r.substring(0, f)) | |
| }) : s = n(r), | |
| R(s.replace(/&/g, "&")) | |
| } | |
| function ot(e) { | |
| var t = document.createElement("div"); | |
| return t.innerHTML = e, | |
| t.textContent || "" | |
| } | |
| function ut(e) { | |
| var r = t.resolve(n.serviceLocator.FEATURE_FLAGS) | |
| , i = r.isFeatureOn(n.featureFlags.INCOMING_WIKI_MARKUP) | |
| , s = q(e); | |
| return s = s.replace(y, V), | |
| s = s.replace(w, R), | |
| s = X(s), | |
| s = s.replace(u, J), | |
| s = s.replace(l, K), | |
| i ? et(s) : s | |
| } | |
| function at(e) { | |
| return q(e).replace(/<ss type="[^"]*">/gi, R).replace(/<\/ss>/gi, R).replace(E, R) | |
| } | |
| function ft(e, t, n) { | |
| var r = e.match(t), i = [], o = e.split(t), u; | |
| if (!r) | |
| return e; | |
| s.each(r, function(e) { | |
| i.push(n(e)) | |
| }), | |
| u = o[0]; | |
| for (var a = 0; a < i.length; a++) | |
| u += i[a], | |
| u += o[a + 1]; | |
| return u | |
| } | |
| function lt(e, t) { | |
| function i(e) { | |
| return n + e + r | |
| } | |
| var n = '<span class="notranslate">' | |
| , r = "</span>"; | |
| return ft(e, t, i) | |
| } | |
| function ct(e, t) { | |
| function s(e) { | |
| var t = e.replace(n, "") | |
| , i = t.substring(0, t.lastIndexOf(r)); | |
| return i | |
| } | |
| var n = '<span class="notranslate">' | |
| , r = "</span>" | |
| , i = new RegExp(n + t.source + "</span>","gi"); | |
| return ft(e, i, s) | |
| } | |
| function ht(e) { | |
| var t; | |
| return e && (t = ct(e, g), | |
| t = ct(t, S), | |
| t = ct(t, x), | |
| t = ct(t, T), | |
| t = ct(t, m), | |
| t = ct(t, v)), | |
| t | |
| } | |
| function pt(e) { | |
| var t = /(\r?\n)|(<br\s?\/>)/gm | |
| , n = "<br/>"; | |
| return e.replace(t, n) | |
| } | |
| function dt(e) { | |
| var t = new RegExp(L,"gi"), n = new RegExp(L,"i"), r, i, s = e; | |
| r = t.exec(e); | |
| while (r) | |
| i = n.exec(r[0]), | |
| i && (s = s.replace(i[0], "@" + i[1])), | |
| r = t.exec(e); | |
| return s | |
| } | |
| function vt(e) { | |
| var t = new RegExp(O,"gi"), n = new RegExp(O,"i"), r, i, s = e; | |
| r = t.exec(e); | |
| while (r) | |
| i = n.exec(r[0]), | |
| i && (s = s.replace(i[0], i[2])), | |
| r = t.exec(e); | |
| return s | |
| } | |
| function mt(e) { | |
| var t = new RegExp(A,"gi"), n = new RegExp(A,"i"), r, i, s = e; | |
| r = t.exec(e); | |
| while (r) | |
| i = n.exec(r[0]), | |
| i && i.length === 4 && (s = s.replace(i[0], i[1] + i[3] + i[2])), | |
| r = t.exec(e); | |
| return s | |
| } | |
| function gt(e) { | |
| var t = i.decode(e) | |
| , n = Z(t) | |
| , r = ut(n); | |
| return pt(r) | |
| } | |
| function yt(e) { | |
| var t = dt(e); | |
| return t = mt(t), | |
| t = vt(t), | |
| t | |
| } | |
| function bt(e) { | |
| return e = e.trim(), | |
| e = e.replace(/&/g, "&"), | |
| e = i.encode(e), | |
| e = at(e), | |
| e = it(e, !0), | |
| e = e.replace(/&amp;/gi, "&"), | |
| e = rt(e), | |
| e | |
| } | |
| function wt(e) { | |
| var t = bt(e); | |
| return t = lt(t, S), | |
| t = lt(t, x), | |
| t = lt(t, v), | |
| t | |
| } | |
| function Et(e) { | |
| var t; | |
| return t = lt(e, g), | |
| t = lt(t, T), | |
| t = lt(t, m), | |
| t = lt(t, v), | |
| t | |
| } | |
| function St(e, t) { | |
| var n = s.isArray(t) ? t : [t]; | |
| return s.each(n, function(t) { | |
| e = e.replace(t, "") | |
| }), | |
| e = e.trim(), | |
| !e | |
| } | |
| function xt(e) { | |
| var t = /<at id="(.*?)">.*?<\/at>/g | |
| , n = /<i class="(.*?)"><span title="(.*?)">.*?<\/span><\/i>/g; | |
| return St(e, [t, n]) | |
| } | |
| function Tt(e) { | |
| return St(e, [S, x, g, T]) | |
| } | |
| var t = e("services/serviceLocator") | |
| , n = e("constants/common") | |
| , r = e("utils/common/regex") | |
| , i = e("utils/common/encoder") | |
| , s = e("lodash-compat") | |
| , o = '(?:(?:\\s*title=".*?"\\s*)|(?:\\s*tabindex="-1"\\s*)|(?:\\s*target="_blank"\\s*)){0,3}' | |
| , u = r.multilineRegExp(["(<a ", o, 'href="((?:https?://|mailto:)[^"]+?)"', o, ">)", "((?:(?!</a>)[\\s\\S])*)", "(</a>)"], "gi") | |
| , a = '<i class="' + n.mentions.class + '"><span title="(.*?)">(.*?)</span></i>' | |
| , f = /((([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,}))/gi | |
| , l = /(<a href="skype:\+\d+">(\+?[\s\d\-]*\d)<\/a>)/gi | |
| , c = ["(", '<span class="emoticon [a-z0-9]+\\s?(?:animated)?\\s?\\s?(?:large|extraLarge)?\\s?">', '<span class="emoSprite">', ")", "(?:.+?)", "(</span></span>)"] | |
| , h = ['<span class="emoticon [a-z0-9]+\\s?(?:animated)?\\s?\\s?(?:large|extraLarge)?\\s?">', '<span class="emoSprite">', "(?:.+?)", "</span></span>"] | |
| , p = ['<i class="' + n.mentions.class + '">', '<span title="(?:.+?)">', "(?:.+?)", "</span></i>"] | |
| , d = ['<a (?:(?:\\s*title=".*?"\\s*)|(?:s*tabindex="-1"\\s*)|(?:\\s*target="_blank"\\s*)){0,3}href="(?:https?://|mailto:)[^"]+?"', '(?:(?:\\s*title=".*?"\\s*)|(?:\\s*tabindex="-1"\\s*)|(?:\\s*target="_blank"\\s*)){0,3}>', "(?:(?!</a>)[\\s\\S])*</a>"] | |
| , v = r.multilineRegExp(d, "gi") | |
| , m = r.multilineRegExp(p, "gi") | |
| , g = r.multilineRegExp(h, "gi") | |
| , y = r.multilineRegExp(c, "gi") | |
| , b = r.multilineRegExp(c, "i") | |
| , w = /<span class="flag ([^"]{2})">[\s]*\(flag:\1\)[\s]*<\/span>/gi | |
| , E = /<flag country="([^"]{2})">[\s]*\(flag:\1\)[\s]*<\/flag>/gi | |
| , S = /<ss type="\w+">.*?<\/ss>/g | |
| , x = /<flag country="[\w+]{2}">(?:.+?)<\/flag>/gi | |
| , T = /<span class="flag [^"]{2}">(?:.+?)<\/span>/gi | |
| , N = { | |
| text: /Edited previous message: /, | |
| edited: /<\/?[e_m][^<>]+>/g, | |
| quoted: /(<(?:\/?)(?:quote|legacyquote)[^>]*>)/gi | |
| } | |
| , C = /\b((https?:\/\/|w{3}\.)\S+)/gi | |
| , k = F() | |
| , L = '<i class="' + n.mentions.class + '"><span title="(.*?)">(.*?)</span></i>' | |
| , A = '<.? raw_pre="(.?)" raw_post="(.?)">(.*?)</.?>' | |
| , O = '<ss type="(.*?)">(.*?)</ss>' | |
| , M = { | |
| bold: B("b", "\\*"), | |
| italic: B("i", "_"), | |
| strike: B("s", "~"), | |
| code: B("pre", "{code}"), | |
| codeBlock: B("pre", "!! ", !0), | |
| rawBold: new RegExp("(<b>)(.*?)(</b>)","gi"), | |
| rawItalic: new RegExp("(<i>)(.*?)(</i>)","gi"), | |
| rawFontColor: new RegExp('(<font\\s+color="#[a-f0-9]{6}">)(.*?)(</font>)',"gi") | |
| } | |
| , _ = { | |
| "*": function(e) { | |
| return j("b", "*", e) | |
| }, | |
| _: function(e) { | |
| return j("i", "_", e) | |
| }, | |
| "~": function(e) { | |
| return j("s", "~", e) | |
| } | |
| } | |
| , D = { | |
| code: { | |
| opening: 46, | |
| closing: 12 | |
| }, | |
| codeBlock: { | |
| opening: 25, | |
| closing: 12 | |
| }, | |
| rawBold: { | |
| opening: 9, | |
| closing: 10 | |
| }, | |
| rawItalic: { | |
| opening: 9, | |
| closing: 10 | |
| }, | |
| rawFontColor: { | |
| opening: 28, | |
| closing: 13 | |
| }, | |
| "default": { | |
| opening: 34, | |
| closing: 10 | |
| } | |
| } | |
| , P = { | |
| "<": "<", | |
| ">": ">", | |
| "<": "<", | |
| ">": ">", | |
| "<": "<", | |
| ">": ">", | |
| "&": "&", | |
| '"': """, | |
| "'": "'", | |
| "&": "&", | |
| """: '"', | |
| "'": "'", | |
| "&": "&", | |
| """: '"', | |
| "&APOS;": "'" | |
| } | |
| , H = "mailto:"; | |
| return { | |
| validateUnescapedLink: function(e) { | |
| return q(e).replace(u, J) | |
| }, | |
| encodeEmoticonsTextRepresentation: function(e) { | |
| function t(e) { | |
| return i.decode(i.encode(e)) | |
| } | |
| return st(e, y, t) | |
| }, | |
| encodeEmoticonsRawRepresentation: function(e) { | |
| return i.decode(i.encode(e, !1)) | |
| }, | |
| encodeLinkTextRepresentation: function(e) { | |
| return st(e, u, it) | |
| }, | |
| unboxHrefContent: function(e) { | |
| function i(e, t) { | |
| var r = t.match(n)[1] || "" | |
| , i = r.replace("&", "&"); | |
| return e.replace(t, i) | |
| } | |
| var t = /(<a.*?<\/a>)/gi | |
| , n = /href="(.*?)"/i | |
| , r = e.match(t) || []; | |
| return r.reduce(i, e) | |
| }, | |
| processOutgoingTextMessage: bt, | |
| escapeIncomingHTML: ut, | |
| escapeOutgoingHTML: at, | |
| escapeHTML: Q, | |
| unescapeHTML: G, | |
| removeAnchorTags: Y, | |
| removeMetaData: Z, | |
| webify: pt, | |
| unwebify: function(e) { | |
| var t = "\r\n" | |
| , n = /<br\/?>/g; | |
| return e.replace(n, t) | |
| }, | |
| getSanitizedTopic: function(e) { | |
| return G(Y(e)) | |
| }, | |
| getMessageSanitizedContent: gt, | |
| getEmoticonNamesFromMessage: function(e) { | |
| var t = [], n = /(?:<ss type=")(\w+)">/g, r; | |
| while (r = n.exec(e)) { | |
| var i = r[1]; | |
| t.push(i) | |
| } | |
| return t | |
| }, | |
| stripHTML: ot, | |
| encode: function(e) { | |
| return i.encode(e) | |
| }, | |
| handleWikiMarkup: et, | |
| compactHtml: yt, | |
| isMessageWithMentionOnly: xt, | |
| removeNoTranslateTags: ht, | |
| processOutgoingTextMessageForTranslation: wt, | |
| isMessageWithEmoticonsOnly: Tt, | |
| processIncomingSanitizedTextMessageForTranslation: Et | |
| } | |
| }), | |
| define("jSkype/utils/chat/parser", ["require", "utils/chat/messageSanitizer"], function(e) { | |
| var t = e("utils/chat/messageSanitizer") | |
| , n = /\/((?:\d+:|live:)[^\/]+)/; | |
| return { | |
| parseName: function(e) { | |
| if (typeof e != "string") | |
| throw new TypeError("Expected a string, got: " + typeof e); | |
| var t = e.match(n); | |
| return t ? t[1] : e | |
| }, | |
| parseTopic: function(e) { | |
| var n = e.replace(/<[^a\/].*?>(.*?)<\/[^a].*?>/gi, "$1") | |
| , r = n.replace(/(<.*?\.{3,})$/, "").trim() | |
| , i = r === "" ? "" : t.validateUnescapedLink(r); | |
| return i | |
| }, | |
| getConversationIdFromUrl: function(e) { | |
| var t = new RegExp(/\/(\d+:[^?]*)/) | |
| , n = e && e.match(t); | |
| return n && n[1] ? n[1] : undefined | |
| } | |
| } | |
| }), | |
| define("jSkype/utils/chat/conversation", ["require", "exports", "module", "lodash-compat", "jSkype/modelHelpers/personHelper", "jSkype/client", "jSkype/utils/chat/parser", "constants/people"], function(e, t) { | |
| var n = e("lodash-compat"), r = e("jSkype/modelHelpers/personHelper"), i = e("jSkype/client"), s = e("jSkype/utils/chat/parser"), o = e("constants/people"), u = "@p2p.thread.skype", a = /syncState=([^&]+)/, f; | |
| t.isMessageReadOnServer = function(e, t, n) { | |
| if (!e) | |
| return !0; | |
| var r = Math.floor(n / 1e3) * 1e3 | |
| , i = e.lastReadMessageId === t | |
| , s = e.lastReadMessageTimestamp >= r; | |
| return i || s | |
| } | |
| , | |
| t.isMessageOutgoing = function(e) { | |
| var t = s.parseName(e.from) | |
| , n = i.get().personsAndGroupsManager.mePerson; | |
| return f = f || r.getKey(n.id(), n._type()), | |
| t === f | |
| } | |
| , | |
| t.isConversationReadOnServer = function(e) { | |
| var t = this.parseConsumptionHorizon(e.properties.consumptionhorizon) | |
| , n = this.getMessageKey(e.lastMessage); | |
| return this.isMessageReadOnServer(t, n, e.lastMessage.id) | |
| } | |
| , | |
| t.parseConsumptionHorizon = function(e) { | |
| if (!n.isString(e)) | |
| return {}; | |
| var t = e.split(";"); | |
| return { | |
| lastReadMessageTimestamp: t[0], | |
| modificationTime: t[1], | |
| lastReadMessageId: t[2] | |
| } | |
| } | |
| , | |
| t.getMessageKey = function(e) { | |
| return e.clientmessageid || e.skypeeditedid || e.messageid || e.id || 0 | |
| } | |
| , | |
| t.isPartiallyMigrated = function(e, t) { | |
| var n = e.indexOf(u) !== -1 | |
| , r = t && t.migrationcompleted && t.migrationcompleted === "true"; | |
| return n && !r | |
| } | |
| , | |
| t.isAgentConversation = function(e) { | |
| return r.getTypeFromKey(e) === o.contactTypes.AGENT | |
| } | |
| , | |
| t.isMeConversation = function(e) { | |
| var t = i.get().personsAndGroupsManager.mePerson; | |
| return e === r.getKey(t.id(), t._type()) | |
| } | |
| , | |
| t.isPstnConversation = function(e) { | |
| return /^\d:\+/.test(e) | |
| } | |
| , | |
| t.isPstnEndpoint = function(e) { | |
| return /^(\+)?\d+$/.test(e) | |
| } | |
| , | |
| t.isPstnOnlyConversation = function(e) { | |
| var n = e.participants.subscribe(); | |
| if (!e.participants.size()) | |
| return n.dispose(), | |
| !1; | |
| for (var r = 0, i = e.participants.size(); r < i; r++) { | |
| var s = e.participants(r); | |
| if (!s.audio.endpoint || !t.isPstnEndpoint(s.audio.endpoint())) | |
| return n.dispose(), | |
| !1 | |
| } | |
| return n.dispose(), | |
| !0 | |
| } | |
| , | |
| t.getSyncStateFromResponse = function(e) { | |
| var t = e._metadata && e._metadata.syncState | |
| , n = null ; | |
| return t && a.test(t) && (n = t.match(a)[1]), | |
| n | |
| } | |
| }), | |
| define("jSkype/services/webapi/actions/handlers", ["require", "exports", "module", "jSkype/services/webapi/utils/conversationMetadataStore", "jSkype/utils/chat/conversation"], function(e, t) { | |
| var n = e("jSkype/services/webapi/utils/conversationMetadataStore") | |
| , r = e("jSkype/utils/chat/conversation"); | |
| t.buildMessageSuccess = function(e, t) { | |
| return function(i) { | |
| var s = i.response | |
| , o = r.getSyncStateFromResponse(s) | |
| , u = !!s._metadata.backwardLink; | |
| n.set(e, o), | |
| t(s.messages || [], u) | |
| } | |
| } | |
| }), | |
| define("jSkype/services/webapi/utils/lockAndKey", [], function() { | |
| "use strict"; | |
| function n() { | |
| var e = window.chatServerTime || (new Date).getTime(); | |
| return Math.round(e / 1e3) | |
| } | |
| function r(n, r) { | |
| return n.getMacHash(r, e, t) | |
| } | |
| function i(t, n) { | |
| return "appId=" + e + "; time=" + t + "; lockAndKeyResponse=" + n | |
| } | |
| var e = "msmsgs@msnmsgr.com" | |
| , t = "Q1P7W2E4J9R8U3S5"; | |
| return function(t) { | |
| this.generate = function() { | |
| var e = n() | |
| , s = r(t, e); | |
| return i(e, s) | |
| } | |
| } | |
| }), | |
| define("vendor/StringBuilder", [], function() { | |
| return function() { | |
| function t(e) { | |
| return this._parts.push(e), | |
| this | |
| } | |
| function n(e) { | |
| return this._parts.push(typeof e == "undefined" || e === null || e === "" ? "\r\n" : e + "\r\n"), | |
| this | |
| } | |
| function r() { | |
| if (arguments.length !== 0) | |
| throw new Error("InvalidParameterCount"); | |
| this._parts = [], | |
| this._value = {}, | |
| this._len = 0 | |
| } | |
| function i() { | |
| if (arguments.length !== 0) | |
| throw new Error("InvalidParameterCount"); | |
| return this._parts.length === 0 ? !0 : this.toString() === "" | |
| } | |
| function s(e) { | |
| e = e || ""; | |
| var t = this._parts; | |
| this._len !== t.length && (this._value = {}, | |
| this._len = t.length); | |
| var n = this._value; | |
| if (typeof n[e] == "undefined") { | |
| if (e !== "") | |
| for (var r = 0; r < t.length; ) | |
| typeof t[r] == "undefined" || t[r] === "" || t[r] === null ? t.splice(r, 1) : r++; | |
| n[e] = this._parts.join(e) | |
| } | |
| return n[e] | |
| } | |
| var e = {}; | |
| return e.StringBuilder = function(n) { | |
| this._parts = e.isNullOrEmpty(n) ? [] : [n.toString()], | |
| this._value = {}, | |
| this._len = 0 | |
| } | |
| , | |
| e.StringBuilder.prototype = { | |
| append: t, | |
| appendLine: n, | |
| clear: r, | |
| isEmpty: i, | |
| toString: s | |
| }, | |
| e.isNullOrEmpty = function(t) { | |
| return !t || !t.length | |
| } | |
| , | |
| e | |
| }() | |
| }), | |
| define("vendor/BigInt", ["require", "vendor/StringBuilder"], function(e) { | |
| var t = e("vendor/StringBuilder"); | |
| return function() { | |
| var e = "0123456789abcdef" | |
| , n = 16 | |
| , r = 3 | |
| , i = function(t, n) { | |
| this._elements = [], | |
| this._radix = t, | |
| this._elements.splice(0, 0, n), | |
| this._length = 1, | |
| this._normalize() | |
| } | |
| ; | |
| return i.hexRadix = 16, | |
| i.decRadix = 1e3, | |
| i._createDec = function(t) { | |
| return new i(i.decRadix,t) | |
| } | |
| , | |
| i._createHex = function(t) { | |
| return new i(i.hexRadix,t) | |
| } | |
| , | |
| i._computeHexNegative = function(t, r) { | |
| var s, o = []; | |
| for (s = 0; s < r; s++) | |
| o.splice(s, 0, t[s]); | |
| for (s = 0; s < o.length; s++) | |
| o[s] > 0 && (o[s] = i.hexRadix - o[s], | |
| s + 1 < o.length ? o[s + 1] = o[s + 1] + 1 : o.length < n && o.splice(s + 1, 0, 1)); | |
| return o | |
| } | |
| , | |
| i.parseDecInt = function(t, n) { | |
| switch (t) { | |
| case i.decRadix: | |
| return i._parseDecIntToDecRadixBigInt(n); | |
| case i.hexRadix: | |
| return i._parseDecIntToHexRadixBigInt(n); | |
| default: | |
| return null | |
| } | |
| } | |
| , | |
| i._parseDecIntToHexRadixBigInt = function(n) { | |
| if (t.isNullOrEmpty(n)) | |
| return null ; | |
| var r = n.charAt(0) === "-"; | |
| r && (n = n.substr(1)); | |
| var s = 9 | |
| , o = i._createHex(1e9) | |
| , u = i._createHex(0) | |
| , a = Math.ceil(n.length / s) | |
| , f = i._createHex(1) | |
| , l = n.length; | |
| for (var c = 0; c < a; c++) { | |
| var h = l - s < 0 ? 0 : l - s | |
| , p = parseInt(n.substr(h, l - h), 10) | |
| , d = i._createHex(p); | |
| d.multiply(f), | |
| u.add(d), | |
| f.multiply(o), | |
| l -= s | |
| } | |
| return u._isNegative = r, | |
| u | |
| } | |
| , | |
| i._parseDecIntToDecRadixBigInt = function(t) { | |
| if (t.length === 0) | |
| return i._createDec(0); | |
| var n = !1 | |
| , s = []; | |
| t.charAt(0) === "-" && (n = !0, | |
| t = t.substr(1, t.length - 1)); | |
| var o; | |
| for (o = 0; r * (o + 1) <= t.length; o++) | |
| s.splice(o, 0, parseInt(t.substring(t.length - r * (o + 1), t.length - r * o), 10)); | |
| 0 !== t.length % r && s.splice(o++, 0, parseInt(t.substring(0, t.length % r), 10)); | |
| var u = i._createDec(0); | |
| return u._elements = s, | |
| u._length = o, | |
| u._isNegative = n, | |
| u | |
| } | |
| , | |
| i._getHexValues = function(t) { | |
| var n = new Array(t.length); | |
| for (var r = 0; r < t.length; r++) { | |
| n[r] = i._hexCharValue(t.charAt(r)); | |
| if (n[r] < 0) | |
| return null | |
| } | |
| return n | |
| } | |
| , | |
| i._hexCharValue = function(t) { | |
| if (t >= "0" && t <= "9") | |
| return t - "0"; | |
| switch (t) { | |
| case "a": | |
| return 10; | |
| case "b": | |
| return 11; | |
| case "c": | |
| return 12; | |
| case "d": | |
| return 13; | |
| case "e": | |
| return 14; | |
| case "f": | |
| return 15; | |
| default: | |
| return -1 | |
| } | |
| } | |
| , | |
| i._toNegativeValues = function(t) { | |
| for (var n = t.length - 1; n >= 0; n--) | |
| t[n] > 0 && (t[n] = 16 - t[n], | |
| n > 0 && (t[n - 1] += 1)); | |
| return t | |
| } | |
| , | |
| i.prototype = { | |
| _isNegative: !1, | |
| _length: 0, | |
| _radix: 0, | |
| _normalize: function() { | |
| var t; | |
| for (t = this._length - 1; t >= 0; t--) { | |
| if (this._elements[t] !== 0) | |
| break; | |
| this._length-- | |
| } | |
| for (var n = 0; n < 2; n++) | |
| if (this._length === 0) | |
| this._isNegative = !1; | |
| else { | |
| if (this._elements[this._length - 1] < 0) { | |
| for (t = 0; t < this._length; t++) | |
| this._elements[t] = -this._elements[t]; | |
| this._isNegative = !this._isNegative | |
| } | |
| for (t = 0; t < this._length - 1; t++) { | |
| var r; | |
| this._elements[t] < 0 && (r = Math.ceil(-this._elements[t] / this._radix), | |
| this._elements[t] = this._elements[t] + this._radix * r, | |
| this._elements[t + 1] = this._elements[t + 1] - r), | |
| this._elements[t] >= this._radix && (r = Math.floor(this._elements[t] / this._radix), | |
| this._elements[t] = this._elements[t] % this._radix, | |
| this._elements[t + 1] = this._elements[t + 1] + r) | |
| } | |
| while (this._elements[this._length - 1] >= this._radix) | |
| this._ensureCapacity(), | |
| this._elements[this._length] = Math.floor(this._elements[this._length - 1] / this._radix), | |
| this._elements[this._length - 1] = this._elements[this._length - 1] % this._radix, | |
| this._length++; | |
| if (!(this._elements[this._length - 1] < 0)) | |
| break; | |
| for (t = 0; t < this._length; t++) | |
| this._elements[t] = -this._elements[t]; | |
| this._isNegative = !this._isNegative | |
| } | |
| }, | |
| _ensureCapacity: function() { | |
| this._length === this._elements.length && this._elements.push(0) | |
| }, | |
| add: function(t) { | |
| var n; | |
| for (n = 0; n < this._length - t._length; n++) | |
| t._elements.splice(t._length + n, 0, 0); | |
| for (n = 0; n < t._length - this._length; n++) | |
| this._elements.splice(this._length + n, 0, 0); | |
| this._length = Math.max(t._length, this._length); | |
| if (this._isNegative === t._isNegative) | |
| for (n = 0; n < this._length; n++) | |
| this._elements[n] = this._elements[n] + t._elements[n]; | |
| else | |
| for (n = 0; n < this._length; n++) | |
| this._elements[n] = this._elements[n] - t._elements[n]; | |
| this._normalize() | |
| }, | |
| multiply: function(t) { | |
| var n, r = new i(this._radix,0); | |
| for (n = 0; n < t._length + this._length; n++) | |
| n < r._elements.length ? r._elements[n] = 0 : r._elements.splice(n, 0, 0); | |
| for (n = 0; n < t._length; n++) { | |
| for (var s = 0; s < this._length; s++) | |
| r._elements[n + s] = r._elements[n + s] + t._elements[n] * this._elements[s], | |
| r._elements[n + s] !== 0 && (r._length = Math.max(r._length, n + s + 1)); | |
| r._normalize() | |
| } | |
| r._isNegative = t._isNegative !== this._isNegative, | |
| this._elements = r._elements, | |
| this._isNegative = r._isNegative, | |
| this._length = r._length | |
| }, | |
| modulus: function(t) { | |
| for (; ; ) { | |
| if (t._length === 0 || this._length === 0) | |
| break; | |
| var n = this._length - t._length; | |
| if (n < 0) | |
| break; | |
| var r = this._elements[this._length - 1] | |
| , i = t._elements[t._length - 1]; | |
| if (r >= i) { | |
| var s = Math.floor(r / i); | |
| for (var o = 0; o < t._length; o++) | |
| this._elements[o + n] = this._elements[o + n] - s * t._elements[o]; | |
| this._normalize(); | |
| continue | |
| } | |
| if (n === 0) | |
| break; | |
| this._elements[this._length - 2] = this._elements[this._length - 2] + this._radix * this._elements[this._length - 1], | |
| this._length-- | |
| } | |
| this._isNegative && (t._isNegative ? (t._isNegative = !1, | |
| this.add(t), | |
| t._isNegative = !0) : this.add(t)), | |
| this._normalize() | |
| }, | |
| toString: function() { | |
| switch (this._radix) { | |
| case i.hexRadix: | |
| return this._toHexString(); | |
| case i.decRadix: | |
| return this._toDecString(); | |
| default: | |
| return "" | |
| } | |
| }, | |
| _toHexString: function() { | |
| if (this._elements.length === 0) | |
| return "0"; | |
| var r = this._elements; | |
| this._isNegative && (r = i._computeHexNegative(r, this._length)); | |
| var s = new t.StringBuilder | |
| , o = !1; | |
| for (var u = r.length - 1; u >= 0; u--) | |
| o || r[u] !== 0 && (o = !0), | |
| o && s.append(e.charAt(r[u])); | |
| return s.toString() | |
| }, | |
| _toDecString: function() { | |
| if (this._length === 0) | |
| return "0"; | |
| var t = ""; | |
| for (var n = 0; n < this._length; n++) { | |
| t = this._elements[n] + t; | |
| if (n < this._length - 1) | |
| for (var r = 10; r < this._radix; r *= 10) | |
| this._elements[n] < r && (t = 0 + t) | |
| } | |
| return this._isNegative && (t = "-" + t), | |
| t | |
| } | |
| }, | |
| i | |
| }() | |
| }), | |
| define("vendor/ConvertHelper", [], function() { | |
| return function() { | |
| var e = { | |
| tryParseInt: function(t) { | |
| var n = parseInt(t, 10); | |
| return isNaN(n) ? -1 : n | |
| }, | |
| parseHexInt: function(t) { | |
| var n = parseInt(t, 16); | |